From 406fbab40e101ad1c4fb00ac5aedf81f82e36283 Mon Sep 17 00:00:00 2001 From: Matt Pharr Date: Wed, 17 Oct 2012 10:55:50 -0700 Subject: [PATCH] Fix bugs in declarations of __any, __all, and __none in examples/intrinsics. They return bool, not vector of bool. --- examples/intrinsics/generic-16.h | 6 +++--- examples/intrinsics/knc.h | 6 +++--- examples/intrinsics/knc2x.h | 6 +++--- examples/intrinsics/sse4.h | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/examples/intrinsics/generic-16.h b/examples/intrinsics/generic-16.h index 0b300f34..828c1ab4 100644 --- a/examples/intrinsics/generic-16.h +++ b/examples/intrinsics/generic-16.h @@ -343,15 +343,15 @@ static FORCEINLINE uint64_t __movmsk(__vec16_i1 mask) { return (uint64_t)mask.v; } -static FORCEINLINE __vec16_i1 __any(__vec16_i1 mask) { +static FORCEINLINE bool __any(__vec16_i1 mask) { return (mask.v!=0); } -static FORCEINLINE __vec16_i1 __all(__vec16_i1 mask) { +static FORCEINLINE bool __all(__vec16_i1 mask) { return (mask.v==0xFFFF); } -static FORCEINLINE __vec16_i1 __none(__vec16_i1 mask) { +static FORCEINLINE bool __none(__vec16_i1 mask) { return (mask.v==0); } diff --git a/examples/intrinsics/knc.h b/examples/intrinsics/knc.h index 15efbc33..7cb68bc5 100644 --- a/examples/intrinsics/knc.h +++ b/examples/intrinsics/knc.h @@ -473,15 +473,15 @@ static FORCEINLINE __vec16_i1 __movmsk(__vec16_i1 mask) { return _mm512_kmov(mask); } -static FORCEINLINE __vec16_i1 __any(__vec16_i1 mask) { +static FORCEINLINE bool __any(__vec16_i1 mask) { return !_mm512_kortestz(mask, mask); } -static FORCEINLINE __vec16_i1 __all(__vec16_i1 mask) { +static FORCEINLINE bool __all(__vec16_i1 mask) { return (mask=0xFFFF); } -static FORCEINLINE __vec16_i1 __none(__vec16_i1 mask) { +static FORCEINLINE bool __none(__vec16_i1 mask) { return !__any(mask); } diff --git a/examples/intrinsics/knc2x.h b/examples/intrinsics/knc2x.h index 3781004c..0041a6c9 100644 --- a/examples/intrinsics/knc2x.h +++ b/examples/intrinsics/knc2x.h @@ -296,15 +296,15 @@ static FORCEINLINE uint32_t __movmsk(__vec32_i1 mask) { return ((m1<<16)|m2); } -static FORCEINLINE uint32_t __any(__vec32_i1 mask) { +static FORCEINLINE bool __any(__vec32_i1 mask) { return !_mm512_kortestz(mask.m16.m1, mask.m16.m2); } -static FORCEINLINE uint32_t __all(__vec32_i1 mask) { +static FORCEINLINE bool __all(__vec32_i1 mask) { return (mask.m==0xFFFFFFFF); } -static FORCEINLINE uint32_t __none(__vec32_i1 mask) { +static FORCEINLINE bool __none(__vec32_i1 mask) { return !__any(mask); } diff --git a/examples/intrinsics/sse4.h b/examples/intrinsics/sse4.h index 8d94bc49..e3a4e277 100644 --- a/examples/intrinsics/sse4.h +++ b/examples/intrinsics/sse4.h @@ -269,15 +269,15 @@ static FORCEINLINE uint64_t __movmsk(__vec4_i1 mask) { return (uint64_t)_mm_movemask_ps(mask.v); } -static FORCEINLINE __vec4_i1 __any(__vec4_i1 mask) { +static FORCEINLINE bool __any(__vec4_i1 mask) { return (_mm_movemask_ps(mask.v)!=0); } -static FORCEINLINE __vec4_i1 __all(__vec4_i1 mask) { +static FORCEINLINE bool __all(__vec4_i1 mask) { return (_mm_movemask_ps(mask.v)=0xF); } -static FORCEINLINE __vec4_i1 __none(__vec4_i1 mask) { +static FORCEINLINE bool __none(__vec4_i1 mask) { return (_mm_movemask_ps(mask.v)==0); }