You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[clang][x86] Add initial constexpr support for VPOPCNTDQ intrinsics (#118017)
#117473 added constexpr support to __builtin_elementwise_popcount - which the VPOPCNTDQ intrinsics just wrap.
Still working on how to make __builtin_ia32_select* intrinsic wrappers constexpr
return v[0] == a && v[1] == b && v[2] == c && v[3] == d;
79
+
}
80
+
81
+
constexprboolmatch_v8si(__m256i _v, int a, int b, int c, int d, int e, int f, int g, int h) {
82
+
__v8si v = (__v8si)_v;
83
+
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;
84
+
}
85
+
76
86
constexprboolmatch_m512(__m512 v, float a, float b, float c, float d, float e, float f, float g, float h, float i, float j, float k, float l, float m, float n, float o, float p) {
77
87
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 && v[8] == i && v[9] == j && v[10] == k && v[11] == l && v[12] == m && v[13] == n && v[14] == o && v[15] == p;
78
88
}
@@ -86,6 +96,16 @@ constexpr bool match_m512i(__m512i _v, unsigned long long a, unsigned long long
86
96
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;
87
97
}
88
98
99
+
constexprboolmatch_v8di(__m512i _v, longlong a, longlong b, longlong c, longlong d, longlong e, longlong f, longlong g, longlong h) {
100
+
__v8di v = (__v8di)_v;
101
+
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;
102
+
}
103
+
104
+
constexprboolmatch_v16si(__m512i _v, int a, int b, int c, int d, int e, int f, int g, int h, int i, int j, int k, int l, int m, int n, int o, int p) {
105
+
__v16si v = (__v16si)_v;
106
+
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 && v[8] == i && v[9] == j && v[10] == k && v[11] == l && v[12] == m && v[13] == n && v[14] == o && v[15] == p;
0 commit comments