From a4bcb1e1e205a87164ecfb199847a0e8a4fa9517 Mon Sep 17 00:00:00 2001 From: Anton Mitrokhin Date: Wed, 29 Oct 2014 20:16:34 +0400 Subject: [PATCH] __min_varying_<...> intrinsics added --- examples/intrinsics/knc.h | 28 +++++++---------------- fail_db.txt | 48 --------------------------------------- 2 files changed, 8 insertions(+), 68 deletions(-) diff --git a/examples/intrinsics/knc.h b/examples/intrinsics/knc.h index 5055e1d4..cea918aa 100644 --- a/examples/intrinsics/knc.h +++ b/examples/intrinsics/knc.h @@ -1642,29 +1642,17 @@ static FORCEINLINE int64_t __max_uniform_int64(int64_t a, int64_t b) { return (a static FORCEINLINE int64_t __min_uniform_uint64(uint64_t a, uint64_t b) { return (ab) ? a : b; } -static FORCEINLINE __vec16_f __max_varying_float(__vec16_f v1, __vec16_f v2) { - return _mm512_gmax_ps(v1, v2); -} +static FORCEINLINE __vec16_f __max_varying_float (__vec16_f v1, __vec16_f v2) { return _mm512_gmax_ps(v1, v2); } +static FORCEINLINE __vec16_f __min_varying_float (__vec16_f v1, __vec16_f v2) { return _mm512_gmin_ps(v1, v2); } +static FORCEINLINE __vec16_d __max_varying_double(__vec16_d v1, __vec16_d v2) { return __vec16_d(_mm512_gmax_pd(v1.v1, v2.v1), _mm512_gmax_pd(v1.v2,v2.v2)); } +static FORCEINLINE __vec16_d __min_varying_double(__vec16_d v1, __vec16_d v2) { return __vec16_d(_mm512_gmin_pd(v1.v1, v2.v1), _mm512_gmin_pd(v1.v2,v2.v2)); } -static FORCEINLINE __vec16_f __min_varying_float(__vec16_f v1, __vec16_f v2) { - return _mm512_gmin_ps(v1, v2); -} +static FORCEINLINE __vec16_i32 __max_varying_int32 (__vec16_i32 v1, __vec16_i32 v2) { return _mm512_max_epi32(v1, v2); } +static FORCEINLINE __vec16_i32 __min_varying_int32 (__vec16_i32 v1, __vec16_i32 v2) { return _mm512_min_epi32(v1, v2); } +static FORCEINLINE __vec16_i32 __max_varying_uint32(__vec16_i32 v1, __vec16_i32 v2) { return _mm512_max_epu32(v1, v2); } +static FORCEINLINE __vec16_i32 __min_varying_uint32(__vec16_i32 v1, __vec16_i32 v2) { return _mm512_min_epu32(v1, v2); } -static FORCEINLINE __vec16_i32 __max_varying_int32(__vec16_i32 v1, __vec16_i32 v2) { - return _mm512_max_epi32(v1, v2); -} -static FORCEINLINE __vec16_i32 __min_varying_int32(__vec16_i32 v1, __vec16_i32 v2) { - return _mm512_min_epi32(v1, v2); -} - -static FORCEINLINE __vec16_i32 __max_varying_uint32(__vec16_i32 v1, __vec16_i32 v2) { - return _mm512_max_epu32(v1, v2); -} - -static FORCEINLINE __vec16_i32 __min_varying_uint32(__vec16_i32 v1, __vec16_i32 v2) { - return _mm512_min_epu32(v1, v2); -} // sqrt/rsqrt/rcp diff --git a/fail_db.txt b/fail_db.txt index 9a72bbbb..1e36e4ef 100644 --- a/fail_db.txt +++ b/fail_db.txt @@ -541,10 +541,6 @@ ./tests/count-leading-trailing-zeros-4.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/count-leading-trailing-zeros-5.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/double-consts.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * -./tests/double-max-1.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * -./tests/double-max.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * -./tests/double-min-1.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * -./tests/double-min.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/double-sqrt.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/exclusive-scan-add-10.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/exclusive-scan-add-8.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * @@ -593,14 +589,10 @@ ./tests/load-int8-1.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/load-int8.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/local-atomics-2.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * -./tests/max-double-1.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * -./tests/max-double-2.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/memcpy-varying.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/memmove-varying.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/memset-uniform.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/memset-varying.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * -./tests/min-double-1.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * -./tests/min-double-2.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/padds_vi16.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/padds_vi64.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * ./tests/padds_vi8.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O2 * @@ -739,10 +731,6 @@ ./tests/count-leading-trailing-zeros-4.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/count-leading-trailing-zeros-5.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/double-consts.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * -./tests/double-max-1.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * -./tests/double-max.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * -./tests/double-min-1.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * -./tests/double-min.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/double-sqrt.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/exclusive-scan-add-1.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/exclusive-scan-add-10.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * @@ -802,14 +790,10 @@ ./tests/load-int8.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/local-atomics-14.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/local-atomics-2.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * -./tests/max-double-1.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * -./tests/max-double-2.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/memcpy-varying.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/memmove-varying.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/memset-uniform.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/memset-varying.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * -./tests/min-double-1.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * -./tests/min-double-2.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/padds_vi16.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/padds_vi64.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * ./tests/padds_vi8.ispc compfail x86-64 knc Linux LLVM 3.4 icpc15.0 -O0 * @@ -961,10 +945,6 @@ ./tests/count-leading-trailing-zeros-4.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/count-leading-trailing-zeros-5.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/double-consts.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * -./tests/double-max-1.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * -./tests/double-max.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * -./tests/double-min-1.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * -./tests/double-min.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/double-sqrt.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/exclusive-scan-add-10.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/exclusive-scan-add-8.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * @@ -1013,14 +993,10 @@ ./tests/load-int8-1.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/load-int8.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/local-atomics-2.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * -./tests/max-double-1.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * -./tests/max-double-2.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/memcpy-varying.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/memmove-varying.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/memset-uniform.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/memset-varying.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * -./tests/min-double-1.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * -./tests/min-double-2.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/padds_vi16.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/padds_vi64.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * ./tests/padds_vi8.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O2 * @@ -1167,10 +1143,6 @@ ./tests/count-leading-trailing-zeros-4.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/count-leading-trailing-zeros-5.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/double-consts.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * -./tests/double-max-1.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * -./tests/double-max.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * -./tests/double-min-1.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * -./tests/double-min.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/double-sqrt.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/exclusive-scan-add-1.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/exclusive-scan-add-10.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * @@ -1230,14 +1202,10 @@ ./tests/load-int8.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/local-atomics-14.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/local-atomics-2.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * -./tests/max-double-1.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * -./tests/max-double-2.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/memcpy-varying.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/memmove-varying.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/memset-uniform.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/memset-varying.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * -./tests/min-double-1.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * -./tests/min-double-2.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/padds_vi16.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/padds_vi64.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * ./tests/padds_vi8.ispc compfail x86-64 knc Linux LLVM 3.5 icpc15.0 -O0 * @@ -1389,10 +1357,6 @@ ./tests/count-leading-trailing-zeros-4.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/count-leading-trailing-zeros-5.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/double-consts.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * -./tests/double-max-1.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * -./tests/double-max.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * -./tests/double-min-1.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * -./tests/double-min.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/double-sqrt.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/exclusive-scan-add-10.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/exclusive-scan-add-8.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * @@ -1441,14 +1405,10 @@ ./tests/load-int8-1.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/load-int8.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/local-atomics-2.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * -./tests/max-double-1.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * -./tests/max-double-2.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/memcpy-varying.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/memmove-varying.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/memset-uniform.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/memset-varying.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * -./tests/min-double-1.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * -./tests/min-double-2.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/padds_vi16.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/padds_vi64.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * ./tests/padds_vi8.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O2 * @@ -1595,10 +1555,6 @@ ./tests/count-leading-trailing-zeros-4.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/count-leading-trailing-zeros-5.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/double-consts.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * -./tests/double-max-1.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * -./tests/double-max.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * -./tests/double-min-1.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * -./tests/double-min.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/double-sqrt.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/exclusive-scan-add-1.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/exclusive-scan-add-10.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * @@ -1658,14 +1614,10 @@ ./tests/load-int8.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/local-atomics-14.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/local-atomics-2.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * -./tests/max-double-1.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * -./tests/max-double-2.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/memcpy-varying.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/memmove-varying.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/memset-uniform.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/memset-varying.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * -./tests/min-double-1.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * -./tests/min-double-2.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/padds_vi16.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/padds_vi64.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 * ./tests/padds_vi8.ispc compfail x86-64 knc Linux LLVM 3.6 icpc15.0 -O0 *