@@ -36,6 +36,11 @@ constexpr bool match_m128d(__m128d v, double a, double b) {
3636 return v[0 ] == a && v[1 ] == b;
3737}
3838
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+
3944constexpr bool match_m128i (__m128i _v, unsigned long long a, unsigned long long b) {
4045 __v2du v = (__v2du)_v;
4146 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) {
6873 return v[0 ] == a && v[1 ] == b && v[2 ] == c && v[3 ] == d;
6974}
7075
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+
7183constexpr bool match_m256i (__m256i _v, unsigned long long a, unsigned long long b, unsigned long long c, unsigned long long d) {
7284 __v4du v = (__v4du)_v;
7385 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
107119 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;
108120}
109121
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+
110133constexpr 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) {
111134 __v8du v = (__v8du)_v;
112135 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