__min_varying_<...> intrinsics added

This commit is contained in:
Anton Mitrokhin
2014-10-29 20:16:34 +04:00
parent 0c0f69e3bf
commit a4bcb1e1e2
2 changed files with 8 additions and 68 deletions

View File

@@ -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 (a<b) ? a : b; }
static FORCEINLINE int64_t __max_uniform_uint64(uint64_t a, uint64_t b) { return (a>b) ? 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

View File

@@ -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 *