cast_fptou(s)i compfail fix
This commit is contained in:
@@ -50,7 +50,7 @@
|
|||||||
#include <iomanip> // for operator<<(m512[i])
|
#include <iomanip> // for operator<<(m512[i])
|
||||||
|
|
||||||
#if __INTEL_COMPILER < 1500
|
#if __INTEL_COMPILER < 1500
|
||||||
#warning "Your compiler version is outdated which can reduce performance in some cases. Please, update your compiler!"
|
#warning "Only ICC 15.0 and older are supported. Please, update your compiler!"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@@ -1780,6 +1780,10 @@ static FORCEINLINE __vec16_i64 __cast_zext(const __vec16_i64 &, const __vec16_i3
|
|||||||
return __vec16_i64(val.v, _mm512_setzero_epi32());
|
return __vec16_i64(val.v, _mm512_setzero_epi32());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static FORCEINLINE __vec16_f __cast_sitofp(__vec16_f, __vec16_i32 val) {
|
||||||
|
return _mm512_cvtepi32_ps(val);
|
||||||
|
}
|
||||||
|
|
||||||
static FORCEINLINE __vec16_f __cast_sitofp(__vec16_f, __vec16_i8 val) {
|
static FORCEINLINE __vec16_f __cast_sitofp(__vec16_f, __vec16_i8 val) {
|
||||||
return __cast_sitofp(__vec16_f(), __cast_sext(__vec16_i32(), val));
|
return __cast_sitofp(__vec16_f(), __cast_sext(__vec16_i32(), val));
|
||||||
}
|
}
|
||||||
@@ -1788,10 +1792,6 @@ static FORCEINLINE __vec16_f __cast_sitofp(__vec16_f, __vec16_i16 val) {
|
|||||||
return __cast_sitofp(__vec16_f(), __cast_sext(__vec16_i32(), val));
|
return __cast_sitofp(__vec16_f(), __cast_sext(__vec16_i32(), val));
|
||||||
}
|
}
|
||||||
|
|
||||||
static FORCEINLINE __vec16_f __cast_sitofp(__vec16_f, __vec16_i32 val) {
|
|
||||||
return _mm512_cvtepi32_ps(val);
|
|
||||||
}
|
|
||||||
|
|
||||||
static FORCEINLINE __vec16_f __cast_sitofp(__vec16_f, __vec16_i64 val) {
|
static FORCEINLINE __vec16_f __cast_sitofp(__vec16_f, __vec16_i64 val) {
|
||||||
__vec16_f ret;
|
__vec16_f ret;
|
||||||
|
|
||||||
@@ -1863,7 +1863,6 @@ static FORCEINLINE __vec16_d __cast_sitofp(__vec16_d, __vec16_i64 val) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static FORCEINLINE __vec16_f __cast_uitofp(__vec16_f, __vec16_i1 v)
|
static FORCEINLINE __vec16_f __cast_uitofp(__vec16_f, __vec16_i1 v)
|
||||||
{
|
{
|
||||||
const __m512 ret = _mm512_setzero_ps();
|
const __m512 ret = _mm512_setzero_ps();
|
||||||
@@ -1871,6 +1870,10 @@ static FORCEINLINE __vec16_f __cast_uitofp(__vec16_f, __vec16_i1 v)
|
|||||||
return _mm512_mask_mov_ps(ret, v, one);
|
return _mm512_mask_mov_ps(ret, v, one);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static FORCEINLINE __vec16_f __cast_uitofp(__vec16_f, __vec16_i32 v) {
|
||||||
|
return _mm512_cvtepu32_ps(v);
|
||||||
|
}
|
||||||
|
|
||||||
static FORCEINLINE __vec16_f __cast_uitofp(__vec16_f, const __vec16_i8 &v) {
|
static FORCEINLINE __vec16_f __cast_uitofp(__vec16_f, const __vec16_i8 &v) {
|
||||||
return __cast_uitofp(__vec16_f(), __cast_zext(__vec16_i32(), v));
|
return __cast_uitofp(__vec16_f(), __cast_zext(__vec16_i32(), v));
|
||||||
}
|
}
|
||||||
@@ -1879,10 +1882,6 @@ static FORCEINLINE __vec16_f __cast_uitofp(__vec16_f, __vec16_i16 val) {
|
|||||||
return __cast_uitofp(__vec16_f(), __cast_zext(__vec16_i32(), val));
|
return __cast_uitofp(__vec16_f(), __cast_zext(__vec16_i32(), val));
|
||||||
}
|
}
|
||||||
|
|
||||||
static FORCEINLINE __vec16_f __cast_uitofp(__vec16_f, __vec16_i32 v) {
|
|
||||||
return _mm512_cvtepu32_ps(v);
|
|
||||||
}
|
|
||||||
|
|
||||||
static FORCEINLINE __vec16_f __cast_uitofp(__vec16_f, __vec16_i64 val) {
|
static FORCEINLINE __vec16_f __cast_uitofp(__vec16_f, __vec16_i64 val) {
|
||||||
__vec16_f ret;
|
__vec16_f ret;
|
||||||
// Cycles don't work. It seems that it is icc bug.
|
// Cycles don't work. It seems that it is icc bug.
|
||||||
|
|||||||
Reference in New Issue
Block a user