@@ -36,6 +36,11 @@ constexpr bool match_m128d(__m128d v, double a, double b) {
36
36
return v[0 ] == a && v[1 ] == b;
37
37
}
38
38
39
+ constexpr bool match_m128h (__m128h _v, _Float16 __e00, _Float16 __e01, _Float16 __e02, _Float16 __e03, _Float16 __e04, _Float16 __e05, _Float16 __e06, _Float16 __e07) {
40
+ __v8hf v = (__v8hf)_v;
41
+ return v[ 0 ] == __e00 && v[ 1 ] == __e01 && v[ 2 ] == __e02 && v[ 3 ] == __e03 && v[ 4 ] == __e04 && v[ 5 ] == __e05 && v[ 6 ] == __e06 && v[ 7 ] == __e07;
42
+ }
43
+
39
44
constexpr bool match_m128i (__m128i _v, unsigned long long a, unsigned long long b) {
40
45
__v2du v = (__v2du)_v;
41
46
return v[0 ] == a && v[1 ] == b;
@@ -68,6 +73,13 @@ constexpr bool match_m256d(__m256d v, double a, double b, double c, double d) {
68
73
return v[0 ] == a && v[1 ] == b && v[2 ] == c && v[3 ] == d;
69
74
}
70
75
76
+ constexpr bool match_m256h (__m256h _v, _Float16 __e00, _Float16 __e01, _Float16 __e02, _Float16 __e03, _Float16 __e04, _Float16 __e05, _Float16 __e06, _Float16 __e07,
77
+ _Float16 __e08, _Float16 __e09, _Float16 __e10, _Float16 __e11, _Float16 __e12, _Float16 __e13, _Float16 __e14, _Float16 __e15) {
78
+ __v16hf v = (__v16hf)_v;
79
+ return v[ 0 ] == __e00 && v[ 1 ] == __e01 && v[ 2 ] == __e02 && v[ 3 ] == __e03 && v[ 4 ] == __e04 && v[ 5 ] == __e05 && v[ 6 ] == __e06 && v[ 7 ] == __e07 &&
80
+ v[ 8 ] == __e08 && v[ 9 ] == __e09 && v[10 ] == __e10 && v[11 ] == __e11 && v[12 ] == __e12 && v[13 ] == __e13 && v[14 ] == __e14 && v[15 ] == __e15;
81
+ }
82
+
71
83
constexpr bool match_m256i (__m256i _v, unsigned long long a, unsigned long long b, unsigned long long c, unsigned long long d) {
72
84
__v4du v = (__v4du)_v;
73
85
return v[0 ] == a && v[1 ] == b && v[2 ] == c && v[3 ] == d;
@@ -107,6 +119,17 @@ constexpr bool match_m512d(__m512d v, double a, double b, double c, double d, do
107
119
return v[0 ] == a && v[1 ] == b && v[2 ] == c && v[3 ] == d && v[4 ] == e && v[5 ] == f && v[6 ] == g && v[7 ] == h;
108
120
}
109
121
122
+ constexpr bool match_m512h (__m512h _v, _Float16 __e00, _Float16 __e01, _Float16 __e02, _Float16 __e03, _Float16 __e04, _Float16 __e05, _Float16 __e06, _Float16 __e07,
123
+ _Float16 __e08, _Float16 __e09, _Float16 __e10, _Float16 __e11, _Float16 __e12, _Float16 __e13, _Float16 __e14, _Float16 __e15,
124
+ _Float16 __e16, _Float16 __e17, _Float16 __e18, _Float16 __e19, _Float16 __e20, _Float16 __e21, _Float16 __e22, _Float16 __e23,
125
+ _Float16 __e24, _Float16 __e25, _Float16 __e26, _Float16 __e27, _Float16 __e28, _Float16 __e29, _Float16 __e30, _Float16 __e31) {
126
+ __v32hf v = (__v32hf)_v;
127
+ return v[ 0 ] == __e00 && v[ 1 ] == __e01 && v[ 2 ] == __e02 && v[ 3 ] == __e03 && v[ 4 ] == __e04 && v[ 5 ] == __e05 && v[ 6 ] == __e06 && v[ 7 ] == __e07 &&
128
+ v[ 8 ] == __e08 && v[ 9 ] == __e09 && v[10 ] == __e10 && v[11 ] == __e11 && v[12 ] == __e12 && v[13 ] == __e13 && v[14 ] == __e14 && v[15 ] == __e15 &&
129
+ v[16 ] == __e16 && v[17 ] == __e17 && v[18 ] == __e18 && v[19 ] == __e19 && v[20 ] == __e20 && v[21 ] == __e21 && v[22 ] == __e22 && v[23 ] == __e23 &&
130
+ v[24 ] == __e24 && v[25 ] == __e25 && v[26 ] == __e26 && v[27 ] == __e27 && v[28 ] == __e28 && v[29 ] == __e29 && v[30 ] == __e30 && v[31 ] == __e31;
131
+ }
132
+
110
133
constexpr bool match_m512i (__m512i _v, unsigned long long a, unsigned long long b, unsigned long long c, unsigned long long d, unsigned long long e, unsigned long long f, unsigned long long g, unsigned long long h) {
111
134
__v8du v = (__v8du)_v;
112
135
return v[0 ] == a && v[1 ] == b && v[2 ] == c && v[3 ] == d && v[4 ] == e && v[5 ] == f && v[6 ] == g && v[7 ] == h;
0 commit comments