From a66c6ecfdd734ae511cbb2d76c282c4bf84f08a4 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 17 Jun 2013 19:34:18 -0400 Subject: Do not use constructor forwarding The Intel compiler does not support it. --- vec_mask.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/vec_mask.h b/vec_mask.h index 75e5db9..31538b0 100644 --- a/vec_mask.h +++ b/vec_mask.h @@ -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 -- cgit v1.1