diff options
author | Erik Schnetter <schnetter@gmail.com> | 2013-06-17 19:34:18 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2013-06-17 19:34:18 -0400 |
commit | a66c6ecfdd734ae511cbb2d76c282c4bf84f08a4 (patch) | |
tree | f5f43d7a07d2a5605c740fed7df0f6b1a28d88fc | |
parent | f70776595e11233be1d8c1dca28e011ea33125aa (diff) | |
download | vecmathlib-a66c6ecfdd734ae511cbb2d76c282c4bf84f08a4.zip vecmathlib-a66c6ecfdd734ae511cbb2d76c282c4bf84f08a4.tar.gz |
Do not use constructor forwarding
The Intel compiler does not support it.
-rw-r--r-- | vec_mask.h | 9 |
1 files changed, 8 insertions, 1 deletions
@@ -43,8 +43,15 @@ namespace vecmathlib { // Construct a mask for a loop starting at imin, aligned down mask_t(std::ptrdiff_t imin_, std::ptrdiff_t imax_, std::ptrdiff_t ioff): - mask_t(imin_ - (ioff + imin_) % size, imin_, imax_, ioff) + imin(imin_), imax(imax_), i(imin_ - (ioff + imin_) % size) { + all_m = i-imin >= 0 && i+size-1-imax < 0; + if (__builtin_expect(all_m, true)) { + m = true; + } else { + m = (! signbit(intvec_t(i - imin) + intvec_t::iota()) && + signbit(intvec_t(i + size-1 - imax) + intvec_t::iota())); + } } // Get current index |