diff options
Diffstat (limited to 'vec_neon_float4.h')
-rw-r--r-- | vec_neon_float4.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/vec_neon_float4.h b/vec_neon_float4.h index 591985c..7c4db0e 100644 --- a/vec_neon_float4.h +++ b/vec_neon_float4.h @@ -115,6 +115,7 @@ namespace vecmathlib { // ifthen(condition, then-value, else-value) + boolvec_t ifthen(boolvec_t x, boolvec_t y) const; intvec_t ifthen(intvec_t x, intvec_t y) const; // defined after intvec realvec_t ifthen(realvec_t x, realvec_t y) const; // defined after realvec }; @@ -571,15 +572,18 @@ namespace vecmathlib { } inline - boolvec<float,4>::intvec_t boolvec<float,4>::ifthen(intvec_t x, intvec_t y) - const + boolvec<float,4> boolvec<float,4>::ifthen(boolvec_t x, boolvec_t y) const + { + return vbslq_u32(v, x.v, y.v); + } + + inline intvec<float,4> boolvec<float,4>::ifthen(intvec_t x, intvec_t y) const { return vbslq_s32(v, x.v, y.v); } inline - boolvec<float,4>::realvec_t boolvec<float,4>::ifthen(realvec_t x, realvec_t y) - const + realvec<float,4> boolvec<float,4>::ifthen(realvec_t x, realvec_t y) const { return vbslq_f32(v, x.v, y.v); } |