@@ -58,11 +58,13 @@ constexpr bool match_m128d(__m128d _v, double a, double b) {
5858 return v[0 ] == __builtin_bit_cast (unsigned long long , a) && v[1 ] == __builtin_bit_cast (unsigned long long , b);
5959}
6060
61+ #ifdef __SSE2__
6162constexpr bool match_m128h (__m128h _v, _Float16 __e00, _Float16 __e01, _Float16 __e02, _Float16 __e03, _Float16 __e04, _Float16 __e05, _Float16 __e06, _Float16 __e07) {
6263 __v8hu v = (__v8hu)_v;
6364 return v[ 0 ] == __builtin_bit_cast (unsigned short , __e00) && v[ 1 ] == __builtin_bit_cast (unsigned short , __e01) && v[ 2 ] == __builtin_bit_cast (unsigned short , __e02) && v[ 3 ] == __builtin_bit_cast (unsigned short , __e03) &&
6465 v[ 4 ] == __builtin_bit_cast (unsigned short , __e04) && v[ 5 ] == __builtin_bit_cast (unsigned short , __e05) && v[ 6 ] == __builtin_bit_cast (unsigned short , __e06) && v[ 7 ] == __builtin_bit_cast (unsigned short , __e07);
6566}
67+ #endif
6668
6769constexpr bool match_m128i (__m128i _v, unsigned long long a, unsigned long long b) {
6870 __v2du v = (__v2du)_v;
@@ -119,6 +121,7 @@ constexpr bool match_m256d(__m256d _v, double a, double b, double c, double d) {
119121 return v[0 ] == __builtin_bit_cast (unsigned long long , a) && v[1 ] == __builtin_bit_cast (unsigned long long , b) && v[2 ] == __builtin_bit_cast (unsigned long long , c) && v[3 ] == __builtin_bit_cast (unsigned long long , d);
120122}
121123
124+ #ifdef __SSE2__
122125constexpr bool match_m256h (__m256h _v, _Float16 __e00, _Float16 __e01, _Float16 __e02, _Float16 __e03, _Float16 __e04, _Float16 __e05, _Float16 __e06, _Float16 __e07,
123126 _Float16 __e08, _Float16 __e09, _Float16 __e10, _Float16 __e11, _Float16 __e12, _Float16 __e13, _Float16 __e14, _Float16 __e15) {
124127 __v16hu v = (__v16hu)_v;
@@ -127,6 +130,7 @@ constexpr bool match_m256h(__m256h _v, _Float16 __e00, _Float16 __e01, _Float16
127130 v[ 8 ] == __builtin_bit_cast (unsigned short , __e08) && v[ 9 ] == __builtin_bit_cast (unsigned short , __e09) && v[10 ] == __builtin_bit_cast (unsigned short , __e10) && v[11 ] == __builtin_bit_cast (unsigned short , __e11) &&
128131 v[12 ] == __builtin_bit_cast (unsigned short , __e12) && v[13 ] == __builtin_bit_cast (unsigned short , __e13) && v[14 ] == __builtin_bit_cast (unsigned short , __e14) && v[15 ] == __builtin_bit_cast (unsigned short , __e15);
129132}
133+ #endif
130134
131135constexpr bool match_m256i (__m256i _v, unsigned long long a, unsigned long long b, unsigned long long c, unsigned long long d) {
132136 __v4du v = (__v4du)_v;
@@ -194,6 +198,7 @@ constexpr bool match_m512d(__m512d _v, double __e00, double __e01, double __e02,
194198 v[ 4 ] == __builtin_bit_cast (unsigned long long , __e04) && v[ 5 ] == __builtin_bit_cast (unsigned long long , __e05) && v[ 6 ] == __builtin_bit_cast (unsigned long long , __e06) && v[ 7 ] == __builtin_bit_cast (unsigned long long , __e07);
195199}
196200
201+ #ifdef __SSE2__
197202constexpr bool match_m512h (__m512h _v, _Float16 __e00, _Float16 __e01, _Float16 __e02, _Float16 __e03, _Float16 __e04, _Float16 __e05, _Float16 __e06, _Float16 __e07,
198203 _Float16 __e08, _Float16 __e09, _Float16 __e10, _Float16 __e11, _Float16 __e12, _Float16 __e13, _Float16 __e14, _Float16 __e15,
199204 _Float16 __e16, _Float16 __e17, _Float16 __e18, _Float16 __e19, _Float16 __e20, _Float16 __e21, _Float16 __e22, _Float16 __e23,
@@ -208,6 +213,7 @@ constexpr bool match_m512h(__m512h _v, _Float16 __e00, _Float16 __e01, _Float16
208213 v[24 ] == __builtin_bit_cast (unsigned short , __e24) && v[25 ] == __builtin_bit_cast (unsigned short , __e25) && v[26 ] == __builtin_bit_cast (unsigned short , __e26) && v[27 ] == __builtin_bit_cast (unsigned short , __e27) &&
209214 v[28 ] == __builtin_bit_cast (unsigned short , __e28) && v[29 ] == __builtin_bit_cast (unsigned short , __e29) && v[30 ] == __builtin_bit_cast (unsigned short , __e30) && v[31 ] == __builtin_bit_cast (unsigned short , __e31);
210215}
216+ #endif
211217
212218constexpr 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) {
213219 __v8du v = (__v8du)_v;
0 commit comments