Add type suffix to comparison ops in C++ output.
e.g. "__equal()" -> "__equal_float()", etc. No functional change; this is necessary groundwork for a forthcoming peephole optimization that eliminates ANDs of masks in some cases.
This commit is contained in:
@@ -193,8 +193,8 @@ static FORCEINLINE TYPE NAME(TYPE a, TYPE b) { \
|
||||
return ret; \
|
||||
}
|
||||
|
||||
#define CMP_OP(TYPE, CAST, NAME, OP) \
|
||||
static FORCEINLINE __vec16_i1 NAME(TYPE a, TYPE b) { \
|
||||
#define CMP_OP(TYPE, SUFFIX, CAST, NAME, OP) \
|
||||
static FORCEINLINE __vec16_i1 NAME##_##SUFFIX(TYPE a, TYPE b) { \
|
||||
__vec16_i1 ret; \
|
||||
ret.v = 0; \
|
||||
for (int i = 0; i < 16; ++i) \
|
||||
@@ -317,7 +317,7 @@ static FORCEINLINE uint64_t __movmsk(__vec16_i1 mask) {
|
||||
return (uint64_t)mask.v;
|
||||
}
|
||||
|
||||
static FORCEINLINE __vec16_i1 __equal(__vec16_i1 a, __vec16_i1 b) {
|
||||
static FORCEINLINE __vec16_i1 __equal_i1(__vec16_i1 a, __vec16_i1 b) {
|
||||
__vec16_i1 r;
|
||||
r.v = (a.v & b.v) | (~a.v & ~b.v);
|
||||
return r;
|
||||
@@ -424,16 +424,16 @@ SHIFT_UNIFORM(__vec16_i8, uint8_t, __lshr, >>)
|
||||
SHIFT_UNIFORM(__vec16_i8, int8_t, __ashr, >>)
|
||||
SHIFT_UNIFORM(__vec16_i8, int8_t, __shl, <<)
|
||||
|
||||
CMP_OP(__vec16_i8, int8_t, __equal, ==)
|
||||
CMP_OP(__vec16_i8, int8_t, __not_equal, !=)
|
||||
CMP_OP(__vec16_i8, uint8_t, __unsigned_less_equal, <=)
|
||||
CMP_OP(__vec16_i8, int8_t, __signed_less_equal, <=)
|
||||
CMP_OP(__vec16_i8, uint8_t, __unsigned_greater_equal, >=)
|
||||
CMP_OP(__vec16_i8, int8_t, __signed_greater_equal, >=)
|
||||
CMP_OP(__vec16_i8, uint8_t, __unsigned_less_than, <)
|
||||
CMP_OP(__vec16_i8, int8_t, __signed_less_than, <)
|
||||
CMP_OP(__vec16_i8, uint8_t, __unsigned_greater_than, >)
|
||||
CMP_OP(__vec16_i8, int8_t, __signed_greater_than, >)
|
||||
CMP_OP(__vec16_i8, i8, int8_t, __equal, ==)
|
||||
CMP_OP(__vec16_i8, i8, int8_t, __not_equal, !=)
|
||||
CMP_OP(__vec16_i8, i8, uint8_t, __unsigned_less_equal, <=)
|
||||
CMP_OP(__vec16_i8, i8, int8_t, __signed_less_equal, <=)
|
||||
CMP_OP(__vec16_i8, i8, uint8_t, __unsigned_greater_equal, >=)
|
||||
CMP_OP(__vec16_i8, i8, int8_t, __signed_greater_equal, >=)
|
||||
CMP_OP(__vec16_i8, i8, uint8_t, __unsigned_less_than, <)
|
||||
CMP_OP(__vec16_i8, i8, int8_t, __signed_less_than, <)
|
||||
CMP_OP(__vec16_i8, i8, uint8_t, __unsigned_greater_than, >)
|
||||
CMP_OP(__vec16_i8, i8, int8_t, __signed_greater_than, >)
|
||||
|
||||
SELECT(__vec16_i8)
|
||||
INSERT_EXTRACT(__vec16_i8, int8_t)
|
||||
@@ -467,16 +467,16 @@ SHIFT_UNIFORM(__vec16_i16, uint16_t, __lshr, >>)
|
||||
SHIFT_UNIFORM(__vec16_i16, int16_t, __ashr, >>)
|
||||
SHIFT_UNIFORM(__vec16_i16, int16_t, __shl, <<)
|
||||
|
||||
CMP_OP(__vec16_i16, int16_t, __equal, ==)
|
||||
CMP_OP(__vec16_i16, int16_t, __not_equal, !=)
|
||||
CMP_OP(__vec16_i16, uint16_t, __unsigned_less_equal, <=)
|
||||
CMP_OP(__vec16_i16, int16_t, __signed_less_equal, <=)
|
||||
CMP_OP(__vec16_i16, uint16_t, __unsigned_greater_equal, >=)
|
||||
CMP_OP(__vec16_i16, int16_t, __signed_greater_equal, >=)
|
||||
CMP_OP(__vec16_i16, uint16_t, __unsigned_less_than, <)
|
||||
CMP_OP(__vec16_i16, int16_t, __signed_less_than, <)
|
||||
CMP_OP(__vec16_i16, uint16_t, __unsigned_greater_than, >)
|
||||
CMP_OP(__vec16_i16, int16_t, __signed_greater_than, >)
|
||||
CMP_OP(__vec16_i16, i16, int16_t, __equal, ==)
|
||||
CMP_OP(__vec16_i16, i16, int16_t, __not_equal, !=)
|
||||
CMP_OP(__vec16_i16, i16, uint16_t, __unsigned_less_equal, <=)
|
||||
CMP_OP(__vec16_i16, i16, int16_t, __signed_less_equal, <=)
|
||||
CMP_OP(__vec16_i16, i16, uint16_t, __unsigned_greater_equal, >=)
|
||||
CMP_OP(__vec16_i16, i16, int16_t, __signed_greater_equal, >=)
|
||||
CMP_OP(__vec16_i16, i16, uint16_t, __unsigned_less_than, <)
|
||||
CMP_OP(__vec16_i16, i16, int16_t, __signed_less_than, <)
|
||||
CMP_OP(__vec16_i16, i16, uint16_t, __unsigned_greater_than, >)
|
||||
CMP_OP(__vec16_i16, i16, int16_t, __signed_greater_than, >)
|
||||
|
||||
SELECT(__vec16_i16)
|
||||
INSERT_EXTRACT(__vec16_i16, int16_t)
|
||||
@@ -510,16 +510,16 @@ SHIFT_UNIFORM(__vec16_i32, uint32_t, __lshr, >>)
|
||||
SHIFT_UNIFORM(__vec16_i32, int32_t, __ashr, >>)
|
||||
SHIFT_UNIFORM(__vec16_i32, int32_t, __shl, <<)
|
||||
|
||||
CMP_OP(__vec16_i32, int32_t, __equal, ==)
|
||||
CMP_OP(__vec16_i32, int32_t, __not_equal, !=)
|
||||
CMP_OP(__vec16_i32, uint32_t, __unsigned_less_equal, <=)
|
||||
CMP_OP(__vec16_i32, int32_t, __signed_less_equal, <=)
|
||||
CMP_OP(__vec16_i32, uint32_t, __unsigned_greater_equal, >=)
|
||||
CMP_OP(__vec16_i32, int32_t, __signed_greater_equal, >=)
|
||||
CMP_OP(__vec16_i32, uint32_t, __unsigned_less_than, <)
|
||||
CMP_OP(__vec16_i32, int32_t, __signed_less_than, <)
|
||||
CMP_OP(__vec16_i32, uint32_t, __unsigned_greater_than, >)
|
||||
CMP_OP(__vec16_i32, int32_t, __signed_greater_than, >)
|
||||
CMP_OP(__vec16_i32, i32, int32_t, __equal, ==)
|
||||
CMP_OP(__vec16_i32, i32, int32_t, __not_equal, !=)
|
||||
CMP_OP(__vec16_i32, i32, uint32_t, __unsigned_less_equal, <=)
|
||||
CMP_OP(__vec16_i32, i32, int32_t, __signed_less_equal, <=)
|
||||
CMP_OP(__vec16_i32, i32, uint32_t, __unsigned_greater_equal, >=)
|
||||
CMP_OP(__vec16_i32, i32, int32_t, __signed_greater_equal, >=)
|
||||
CMP_OP(__vec16_i32, i32, uint32_t, __unsigned_less_than, <)
|
||||
CMP_OP(__vec16_i32, i32, int32_t, __signed_less_than, <)
|
||||
CMP_OP(__vec16_i32, i32, uint32_t, __unsigned_greater_than, >)
|
||||
CMP_OP(__vec16_i32, i32, int32_t, __signed_greater_than, >)
|
||||
|
||||
SELECT(__vec16_i32)
|
||||
INSERT_EXTRACT(__vec16_i32, int32_t)
|
||||
@@ -553,16 +553,16 @@ SHIFT_UNIFORM(__vec16_i64, uint64_t, __lshr, >>)
|
||||
SHIFT_UNIFORM(__vec16_i64, int64_t, __ashr, >>)
|
||||
SHIFT_UNIFORM(__vec16_i64, int64_t, __shl, <<)
|
||||
|
||||
CMP_OP(__vec16_i64, int64_t, __equal, ==)
|
||||
CMP_OP(__vec16_i64, int64_t, __not_equal, !=)
|
||||
CMP_OP(__vec16_i64, uint64_t, __unsigned_less_equal, <=)
|
||||
CMP_OP(__vec16_i64, int64_t, __signed_less_equal, <=)
|
||||
CMP_OP(__vec16_i64, uint64_t, __unsigned_greater_equal, >=)
|
||||
CMP_OP(__vec16_i64, int64_t, __signed_greater_equal, >=)
|
||||
CMP_OP(__vec16_i64, uint64_t, __unsigned_less_than, <)
|
||||
CMP_OP(__vec16_i64, int64_t, __signed_less_than, <)
|
||||
CMP_OP(__vec16_i64, uint64_t, __unsigned_greater_than, >)
|
||||
CMP_OP(__vec16_i64, int64_t, __signed_greater_than, >)
|
||||
CMP_OP(__vec16_i64, i64, int64_t, __equal, ==)
|
||||
CMP_OP(__vec16_i64, i64, int64_t, __not_equal, !=)
|
||||
CMP_OP(__vec16_i64, i64, uint64_t, __unsigned_less_equal, <=)
|
||||
CMP_OP(__vec16_i64, i64, int64_t, __signed_less_equal, <=)
|
||||
CMP_OP(__vec16_i64, i64, uint64_t, __unsigned_greater_equal, >=)
|
||||
CMP_OP(__vec16_i64, i64, int64_t, __signed_greater_equal, >=)
|
||||
CMP_OP(__vec16_i64, i64, uint64_t, __unsigned_less_than, <)
|
||||
CMP_OP(__vec16_i64, i64, int64_t, __signed_less_than, <)
|
||||
CMP_OP(__vec16_i64, i64, uint64_t, __unsigned_greater_than, >)
|
||||
CMP_OP(__vec16_i64, i64, int64_t, __signed_greater_than, >)
|
||||
|
||||
SELECT(__vec16_i64)
|
||||
INSERT_EXTRACT(__vec16_i64, int64_t)
|
||||
@@ -580,12 +580,12 @@ BINARY_OP(__vec16_f, __sub, -)
|
||||
BINARY_OP(__vec16_f, __mul, *)
|
||||
BINARY_OP(__vec16_f, __div, /)
|
||||
|
||||
CMP_OP(__vec16_f, float, __equal, ==)
|
||||
CMP_OP(__vec16_f, float, __not_equal, !=)
|
||||
CMP_OP(__vec16_f, float, __less_than, <)
|
||||
CMP_OP(__vec16_f, float, __less_equal, <=)
|
||||
CMP_OP(__vec16_f, float, __greater_than, >)
|
||||
CMP_OP(__vec16_f, float, __greater_equal, >=)
|
||||
CMP_OP(__vec16_f, float, float, __equal, ==)
|
||||
CMP_OP(__vec16_f, float, float, __not_equal, !=)
|
||||
CMP_OP(__vec16_f, float, float, __less_than, <)
|
||||
CMP_OP(__vec16_f, float, float, __less_equal, <=)
|
||||
CMP_OP(__vec16_f, float, float, __greater_than, >)
|
||||
CMP_OP(__vec16_f, float, float, __greater_equal, >=)
|
||||
|
||||
static FORCEINLINE __vec16_i1 __ordered(__vec16_f a, __vec16_f b) {
|
||||
__vec16_i1 ret;
|
||||
@@ -730,12 +730,12 @@ BINARY_OP(__vec16_d, __sub, -)
|
||||
BINARY_OP(__vec16_d, __mul, *)
|
||||
BINARY_OP(__vec16_d, __div, /)
|
||||
|
||||
CMP_OP(__vec16_d, double, __equal, ==)
|
||||
CMP_OP(__vec16_d, double, __not_equal, !=)
|
||||
CMP_OP(__vec16_d, double, __less_than, <)
|
||||
CMP_OP(__vec16_d, double, __less_equal, <=)
|
||||
CMP_OP(__vec16_d, double, __greater_than, >)
|
||||
CMP_OP(__vec16_d, double, __greater_equal, >=)
|
||||
CMP_OP(__vec16_d, double, double, __equal, ==)
|
||||
CMP_OP(__vec16_d, double, double, __not_equal, !=)
|
||||
CMP_OP(__vec16_d, double, double, __less_than, <)
|
||||
CMP_OP(__vec16_d, double, double, __less_equal, <=)
|
||||
CMP_OP(__vec16_d, double, double, __greater_than, >)
|
||||
CMP_OP(__vec16_d, double, double, __greater_equal, >=)
|
||||
|
||||
static FORCEINLINE __vec16_i1 __ordered(__vec16_d a, __vec16_d b) {
|
||||
__vec16_i1 ret;
|
||||
|
||||
Reference in New Issue
Block a user