Skip to content

Commit 33316d5

Browse files
authored
[X86] Allow remaining AVX512 per-element shift intrinsics to be used in constexpr (#157696)
Handle missing AVX512F epi64 and AVX512BW epi16 cases with existing code paths Fixes #154287
1 parent 8774de8 commit 33316d5

File tree

11 files changed

+130
-56
lines changed

11 files changed

+130
-56
lines changed

clang/include/clang/Basic/BuiltinsX86.td

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2002,6 +2002,10 @@ let Features = "avx512f", Attributes = [NoThrow, Const, Constexpr, RequiredVecto
20022002
def psrav16si : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>)">;
20032003
def psrlv16si : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>)">;
20042004

2005+
def psllv8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">;
2006+
def psrav8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">;
2007+
def psrlv8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">;
2008+
20052009
def prold512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Constant int)">;
20062010
def prord512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Constant int)">;
20072011
def prolq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Constant int)">;
@@ -2025,15 +2029,18 @@ let Features = "avx512vl", Attributes = [NoThrow, Const, Constexpr, RequiredVect
20252029
let Features = "avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in {
20262030
def pshufhw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Constant int)">;
20272031
def pshuflw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Constant int)">;
2028-
def psllv32hi : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">;
20292032
def psllw512 : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<8, short>)">;
20302033
}
20312034

2032-
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in {
2035+
let Features = "avx512bw", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512>] in {
2036+
def psllv32hi : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">;
2037+
}
2038+
2039+
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256>] in {
20332040
def psllv16hi : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">;
20342041
}
20352042

2036-
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in {
2043+
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128>] in {
20372044
def psllv8hi : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">;
20382045
}
20392046

@@ -2044,15 +2051,15 @@ let Features = "avx512f",
20442051
def psllqi512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, int)">;
20452052
}
20462053

2047-
let Features = "avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in {
2054+
let Features = "avx512bw", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512>] in {
20482055
def psrlv32hi : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">;
20492056
}
20502057

2051-
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in {
2058+
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256>] in {
20522059
def psrlv16hi : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">;
20532060
}
20542061

2055-
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in {
2062+
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128>] in {
20562063
def psrlv8hi : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">;
20572064
}
20582065

@@ -2063,23 +2070,23 @@ let Features = "avx512f",
20632070
def psrlqi512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, int)">;
20642071
}
20652072

2066-
let Features = "avx512bw", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in {
2073+
let Features = "avx512bw", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<512>] in {
20672074
def psrav32hi : X86Builtin<"_Vector<32, short>(_Vector<32, short>, _Vector<32, short>)">;
20682075
}
20692076

2070-
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in {
2077+
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256>] in {
20712078
def psrav16hi : X86Builtin<"_Vector<16, short>(_Vector<16, short>, _Vector<16, short>)">;
20722079
}
20732080

2074-
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in {
2081+
let Features = "avx512bw,avx512vl", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128>] in {
20752082
def psrav8hi : X86Builtin<"_Vector<8, short>(_Vector<8, short>, _Vector<8, short>)">;
20762083
}
20772084

2078-
let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<128>] in {
2085+
let Features = "avx512vl", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<128>] in {
20792086
def psravq128 : X86Builtin<"_Vector<2, long long int>(_Vector<2, long long int>, _Vector<2, long long int>)">;
20802087
}
20812088

2082-
let Features = "avx512vl", Attributes = [NoThrow, Const, RequiredVectorWidth<256>] in {
2089+
let Features = "avx512vl", Attributes = [NoThrow, Const, Constexpr, RequiredVectorWidth<256>] in {
20832090
def psravq256 : X86Builtin<"_Vector<4, long long int>(_Vector<4, long long int>, _Vector<4, long long int>)">;
20842091
}
20852092

@@ -2431,13 +2438,10 @@ let Features = "avx512vl",
24312438
let Features = "avx512f", Attributes = [NoThrow, Const, RequiredVectorWidth<512>] in {
24322439
def pslld512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<4, int>)">;
24332440
def psllq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<2, long long int>)">;
2434-
def psllv8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">;
24352441
def psrad512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<4, int>)">;
24362442
def psraq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<2, long long int>)">;
2437-
def psrav8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">;
24382443
def psrld512 : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<4, int>)">;
24392444
def psrlq512 : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<2, long long int>)">;
2440-
def psrlv8di : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>)">;
24412445
def pternlogd512_mask : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>, _Constant int, unsigned short)">;
24422446
def pternlogd512_maskz : X86Builtin<"_Vector<16, int>(_Vector<16, int>, _Vector<16, int>, _Vector<16, int>, _Constant int, unsigned short)">;
24432447
def pternlogq512_mask : X86Builtin<"_Vector<8, long long int>(_Vector<8, long long int>, _Vector<8, long long int>, _Vector<8, long long int>, _Constant int, unsigned char)">;

clang/lib/AST/ByteCode/InterpBuiltin.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3314,8 +3314,12 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const CallExpr *Call,
33143314
case clang::X86::BI__builtin_ia32_psllv2di:
33153315
case clang::X86::BI__builtin_ia32_psllv4di:
33163316
case clang::X86::BI__builtin_ia32_psllv4si:
3317+
case clang::X86::BI__builtin_ia32_psllv8di:
3318+
case clang::X86::BI__builtin_ia32_psllv8hi:
33173319
case clang::X86::BI__builtin_ia32_psllv8si:
3320+
case clang::X86::BI__builtin_ia32_psllv16hi:
33183321
case clang::X86::BI__builtin_ia32_psllv16si:
3322+
case clang::X86::BI__builtin_ia32_psllv32hi:
33193323
case clang::X86::BI__builtin_ia32_psllwi128:
33203324
case clang::X86::BI__builtin_ia32_psllwi256:
33213325
case clang::X86::BI__builtin_ia32_psllwi512:
@@ -3334,8 +3338,14 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const CallExpr *Call,
33343338
});
33353339

33363340
case clang::X86::BI__builtin_ia32_psrav4si:
3341+
case clang::X86::BI__builtin_ia32_psrav8di:
3342+
case clang::X86::BI__builtin_ia32_psrav8hi:
33373343
case clang::X86::BI__builtin_ia32_psrav8si:
3344+
case clang::X86::BI__builtin_ia32_psrav16hi:
33383345
case clang::X86::BI__builtin_ia32_psrav16si:
3346+
case clang::X86::BI__builtin_ia32_psrav32hi:
3347+
case clang::X86::BI__builtin_ia32_psravq128:
3348+
case clang::X86::BI__builtin_ia32_psravq256:
33393349
case clang::X86::BI__builtin_ia32_psrawi128:
33403350
case clang::X86::BI__builtin_ia32_psrawi256:
33413351
case clang::X86::BI__builtin_ia32_psrawi512:
@@ -3356,8 +3366,12 @@ bool InterpretBuiltin(InterpState &S, CodePtr OpPC, const CallExpr *Call,
33563366
case clang::X86::BI__builtin_ia32_psrlv2di:
33573367
case clang::X86::BI__builtin_ia32_psrlv4di:
33583368
case clang::X86::BI__builtin_ia32_psrlv4si:
3369+
case clang::X86::BI__builtin_ia32_psrlv8di:
3370+
case clang::X86::BI__builtin_ia32_psrlv8hi:
33593371
case clang::X86::BI__builtin_ia32_psrlv8si:
3372+
case clang::X86::BI__builtin_ia32_psrlv16hi:
33603373
case clang::X86::BI__builtin_ia32_psrlv16si:
3374+
case clang::X86::BI__builtin_ia32_psrlv32hi:
33613375
case clang::X86::BI__builtin_ia32_psrlwi128:
33623376
case clang::X86::BI__builtin_ia32_psrlwi256:
33633377
case clang::X86::BI__builtin_ia32_psrlwi512:

clang/lib/AST/ExprConstant.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11707,8 +11707,12 @@ bool VectorExprEvaluator::VisitCallExpr(const CallExpr *E) {
1170711707
case clang::X86::BI__builtin_ia32_psllv2di:
1170811708
case clang::X86::BI__builtin_ia32_psllv4di:
1170911709
case clang::X86::BI__builtin_ia32_psllv4si:
11710+
case clang::X86::BI__builtin_ia32_psllv8di:
11711+
case clang::X86::BI__builtin_ia32_psllv8hi:
1171011712
case clang::X86::BI__builtin_ia32_psllv8si:
11713+
case clang::X86::BI__builtin_ia32_psllv16hi:
1171111714
case clang::X86::BI__builtin_ia32_psllv16si:
11715+
case clang::X86::BI__builtin_ia32_psllv32hi:
1171211716
case clang::X86::BI__builtin_ia32_psllwi128:
1171311717
case clang::X86::BI__builtin_ia32_pslldi128:
1171411718
case clang::X86::BI__builtin_ia32_psllqi128:
@@ -11726,8 +11730,14 @@ bool VectorExprEvaluator::VisitCallExpr(const CallExpr *E) {
1172611730
});
1172711731

1172811732
case clang::X86::BI__builtin_ia32_psrav4si:
11733+
case clang::X86::BI__builtin_ia32_psrav8di:
11734+
case clang::X86::BI__builtin_ia32_psrav8hi:
1172911735
case clang::X86::BI__builtin_ia32_psrav8si:
11736+
case clang::X86::BI__builtin_ia32_psrav16hi:
1173011737
case clang::X86::BI__builtin_ia32_psrav16si:
11738+
case clang::X86::BI__builtin_ia32_psrav32hi:
11739+
case clang::X86::BI__builtin_ia32_psravq128:
11740+
case clang::X86::BI__builtin_ia32_psravq256:
1173111741
case clang::X86::BI__builtin_ia32_psrawi128:
1173211742
case clang::X86::BI__builtin_ia32_psradi128:
1173311743
case clang::X86::BI__builtin_ia32_psraqi128:
@@ -11747,8 +11757,12 @@ bool VectorExprEvaluator::VisitCallExpr(const CallExpr *E) {
1174711757
case clang::X86::BI__builtin_ia32_psrlv2di:
1174811758
case clang::X86::BI__builtin_ia32_psrlv4di:
1174911759
case clang::X86::BI__builtin_ia32_psrlv4si:
11760+
case clang::X86::BI__builtin_ia32_psrlv8di:
11761+
case clang::X86::BI__builtin_ia32_psrlv8hi:
1175011762
case clang::X86::BI__builtin_ia32_psrlv8si:
11763+
case clang::X86::BI__builtin_ia32_psrlv16hi:
1175111764
case clang::X86::BI__builtin_ia32_psrlv16si:
11765+
case clang::X86::BI__builtin_ia32_psrlv32hi:
1175211766
case clang::X86::BI__builtin_ia32_psrlwi128:
1175311767
case clang::X86::BI__builtin_ia32_psrldi128:
1175411768
case clang::X86::BI__builtin_ia32_psrlqi128:

clang/lib/Headers/avx512bwintrin.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1407,21 +1407,21 @@ _mm512_maskz_cvtepu8_epi16(__mmask32 __U, __m256i __A)
14071407
(imm)), \
14081408
(__v32hi)_mm512_setzero_si512()))
14091409

1410-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
1410+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
14111411
_mm512_sllv_epi16(__m512i __A, __m512i __B)
14121412
{
14131413
return (__m512i)__builtin_ia32_psllv32hi((__v32hi) __A, (__v32hi) __B);
14141414
}
14151415

1416-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
1416+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
14171417
_mm512_mask_sllv_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
14181418
{
14191419
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
14201420
(__v32hi)_mm512_sllv_epi16(__A, __B),
14211421
(__v32hi)__W);
14221422
}
14231423

1424-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
1424+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
14251425
_mm512_maskz_sllv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
14261426
{
14271427
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
@@ -1474,43 +1474,43 @@ _mm512_maskz_slli_epi16(__mmask32 __U, __m512i __A, unsigned int __B) {
14741474
#define _mm512_bslli_epi128(a, imm) \
14751475
((__m512i)__builtin_ia32_pslldqi512_byteshift((__v8di)(__m512i)(a), (int)(imm)))
14761476

1477-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
1477+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
14781478
_mm512_srlv_epi16(__m512i __A, __m512i __B)
14791479
{
14801480
return (__m512i)__builtin_ia32_psrlv32hi((__v32hi)__A, (__v32hi)__B);
14811481
}
14821482

1483-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
1483+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
14841484
_mm512_mask_srlv_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
14851485
{
14861486
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
14871487
(__v32hi)_mm512_srlv_epi16(__A, __B),
14881488
(__v32hi)__W);
14891489
}
14901490

1491-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
1491+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
14921492
_mm512_maskz_srlv_epi16(__mmask32 __U, __m512i __A, __m512i __B)
14931493
{
14941494
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
14951495
(__v32hi)_mm512_srlv_epi16(__A, __B),
14961496
(__v32hi)_mm512_setzero_si512());
14971497
}
14981498

1499-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
1499+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
15001500
_mm512_srav_epi16(__m512i __A, __m512i __B)
15011501
{
15021502
return (__m512i)__builtin_ia32_psrav32hi((__v32hi)__A, (__v32hi)__B);
15031503
}
15041504

1505-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
1505+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
15061506
_mm512_mask_srav_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B)
15071507
{
15081508
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,
15091509
(__v32hi)_mm512_srav_epi16(__A, __B),
15101510
(__v32hi)__W);
15111511
}
15121512

1513-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
1513+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
15141514
_mm512_maskz_srav_epi16(__mmask32 __U, __m512i __A, __m512i __B)
15151515
{
15161516
return (__m512i)__builtin_ia32_selectw_512((__mmask32)__U,

clang/lib/Headers/avx512fintrin.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5517,21 +5517,21 @@ _mm512_maskz_sllv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
55175517
(__v16si)_mm512_setzero_si512());
55185518
}
55195519

5520-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
5520+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
55215521
_mm512_sllv_epi64(__m512i __X, __m512i __Y)
55225522
{
55235523
return (__m512i)__builtin_ia32_psllv8di((__v8di)__X, (__v8di)__Y);
55245524
}
55255525

5526-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
5526+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
55275527
_mm512_mask_sllv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
55285528
{
55295529
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
55305530
(__v8di)_mm512_sllv_epi64(__X, __Y),
55315531
(__v8di)__W);
55325532
}
55335533

5534-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
5534+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
55355535
_mm512_maskz_sllv_epi64(__mmask8 __U, __m512i __X, __m512i __Y)
55365536
{
55375537
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
@@ -5602,21 +5602,21 @@ _mm512_maskz_srav_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
56025602
(__v16si)_mm512_setzero_si512());
56035603
}
56045604

5605-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
5605+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
56065606
_mm512_srav_epi64(__m512i __X, __m512i __Y)
56075607
{
56085608
return (__m512i)__builtin_ia32_psrav8di((__v8di)__X, (__v8di)__Y);
56095609
}
56105610

5611-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
5611+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
56125612
_mm512_mask_srav_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
56135613
{
56145614
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
56155615
(__v8di)_mm512_srav_epi64(__X, __Y),
56165616
(__v8di)__W);
56175617
}
56185618

5619-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
5619+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
56205620
_mm512_maskz_srav_epi64(__mmask8 __U, __m512i __X, __m512i __Y)
56215621
{
56225622
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
@@ -5687,21 +5687,21 @@ _mm512_maskz_srlv_epi32(__mmask16 __U, __m512i __X, __m512i __Y) {
56875687
(__v16si)_mm512_setzero_si512());
56885688
}
56895689

5690-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
5690+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
56915691
_mm512_srlv_epi64 (__m512i __X, __m512i __Y)
56925692
{
56935693
return (__m512i)__builtin_ia32_psrlv8di((__v8di)__X, (__v8di)__Y);
56945694
}
56955695

5696-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
5696+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
56975697
_mm512_mask_srlv_epi64(__m512i __W, __mmask8 __U, __m512i __X, __m512i __Y)
56985698
{
56995699
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,
57005700
(__v8di)_mm512_srlv_epi64(__X, __Y),
57015701
(__v8di)__W);
57025702
}
57035703

5704-
static __inline__ __m512i __DEFAULT_FN_ATTRS512
5704+
static __inline__ __m512i __DEFAULT_FN_ATTRS512_CONSTEXPR
57055705
_mm512_maskz_srlv_epi64(__mmask8 __U, __m512i __X, __m512i __Y)
57065706
{
57075707
return (__m512i)__builtin_ia32_selectq_512((__mmask8)__U,

0 commit comments

Comments
 (0)