Skip to content

Commit 0013f94

Browse files
authored
[clang][powerpc][wasm][systemz][x86] Replace target vector popcount intrinsics with __builtin_elementwise_popcount (#109160)
Now that we have the C/C++ `__builtin_elementwise_popcount` intrinsic (#108121) - remove custom target intrinsics that just immediately map to Intrinsic::ctpop and use the generic intrinsic directly.
1 parent 61ed538 commit 0013f94

18 files changed

+53
-135
lines changed

clang/include/clang/Basic/BuiltinsPPC.def

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -541,12 +541,6 @@ TARGET_BUILTIN(__builtin_altivec_vprtybw, "V4UiV4Ui", "", "power9-vector")
541541
TARGET_BUILTIN(__builtin_altivec_vprtybd, "V2ULLiV2ULLi", "", "power9-vector")
542542
TARGET_BUILTIN(__builtin_altivec_vprtybq, "V1ULLLiV1ULLLi", "", "power9-vector")
543543

544-
// Vector population count built-ins
545-
TARGET_BUILTIN(__builtin_altivec_vpopcntb, "V16UcV16Uc", "", "power8-vector")
546-
TARGET_BUILTIN(__builtin_altivec_vpopcnth, "V8UsV8Us", "", "power8-vector")
547-
TARGET_BUILTIN(__builtin_altivec_vpopcntw, "V4UiV4Ui", "", "power8-vector")
548-
TARGET_BUILTIN(__builtin_altivec_vpopcntd, "V2ULLiV2ULLi", "", "power8-vector")
549-
550544
// Absolute difference built-ins
551545
TARGET_BUILTIN(__builtin_altivec_vabsdub, "V16UcV16UcV16Uc", "",
552546
"power9-vector")

clang/include/clang/Basic/BuiltinsSystemZ.def

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -157,10 +157,6 @@ TARGET_BUILTIN(__builtin_s390_vmof, "V2SLLiV4SiV4Si", "nc", "vector")
157157
TARGET_BUILTIN(__builtin_s390_vmlob, "V8UsV16UcV16Uc", "nc", "vector")
158158
TARGET_BUILTIN(__builtin_s390_vmloh, "V4UiV8UsV8Us", "nc", "vector")
159159
TARGET_BUILTIN(__builtin_s390_vmlof, "V2ULLiV4UiV4Ui", "nc", "vector")
160-
TARGET_BUILTIN(__builtin_s390_vpopctb, "V16UcV16Uc", "nc", "vector")
161-
TARGET_BUILTIN(__builtin_s390_vpopcth, "V8UsV8Us", "nc", "vector")
162-
TARGET_BUILTIN(__builtin_s390_vpopctf, "V4UiV4Ui", "nc", "vector")
163-
TARGET_BUILTIN(__builtin_s390_vpopctg, "V2ULLiV2ULLi", "nc", "vector")
164160
TARGET_BUILTIN(__builtin_s390_vsq, "SLLLiSLLLiSLLLi", "nc", "vector")
165161
TARGET_BUILTIN(__builtin_s390_vsbcbiq, "ULLLiULLLiULLLiULLLi", "nc", "vector")
166162
TARGET_BUILTIN(__builtin_s390_vsbiq, "ULLLiULLLiULLLiULLLi", "nc", "vector")

clang/include/clang/Basic/BuiltinsWebAssembly.def

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,6 @@ TARGET_BUILTIN(__builtin_wasm_max_u_i32x4, "V4UiV4UiV4Ui", "nc", "simd128")
9999
TARGET_BUILTIN(__builtin_wasm_avgr_u_i8x16, "V16UcV16UcV16Uc", "nc", "simd128")
100100
TARGET_BUILTIN(__builtin_wasm_avgr_u_i16x8, "V8UsV8UsV8Us", "nc", "simd128")
101101

102-
TARGET_BUILTIN(__builtin_wasm_popcnt_i8x16, "V16ScV16Sc", "nc", "simd128")
103-
104102
TARGET_BUILTIN(__builtin_wasm_q15mulr_sat_s_i16x8, "V8sV8sV8s", "nc", "simd128")
105103

106104
TARGET_BUILTIN(__builtin_wasm_extadd_pairwise_i8x16_s_i16x8, "V8sV16Sc", "nc", "simd128")

clang/include/clang/Basic/BuiltinsX86.def

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -866,20 +866,6 @@ TARGET_BUILTIN(__builtin_ia32_vpconflictsi_512, "V16iV16i", "ncV:512:", "avx512c
866866
TARGET_BUILTIN(__builtin_ia32_vplzcntd_512, "V16iV16i", "ncV:512:", "avx512cd,evex512")
867867
TARGET_BUILTIN(__builtin_ia32_vplzcntq_512, "V8OiV8Oi", "ncV:512:", "avx512cd,evex512")
868868

869-
TARGET_BUILTIN(__builtin_ia32_vpopcntd_128, "V4iV4i", "ncV:128:", "avx512vpopcntdq,avx512vl")
870-
TARGET_BUILTIN(__builtin_ia32_vpopcntq_128, "V2OiV2Oi", "ncV:128:", "avx512vpopcntdq,avx512vl")
871-
TARGET_BUILTIN(__builtin_ia32_vpopcntd_256, "V8iV8i", "ncV:256:", "avx512vpopcntdq,avx512vl")
872-
TARGET_BUILTIN(__builtin_ia32_vpopcntq_256, "V4OiV4Oi", "ncV:256:", "avx512vpopcntdq,avx512vl")
873-
TARGET_BUILTIN(__builtin_ia32_vpopcntd_512, "V16iV16i", "ncV:512:", "avx512vpopcntdq,evex512")
874-
TARGET_BUILTIN(__builtin_ia32_vpopcntq_512, "V8OiV8Oi", "ncV:512:", "avx512vpopcntdq,evex512")
875-
876-
TARGET_BUILTIN(__builtin_ia32_vpopcntb_128, "V16cV16c", "ncV:128:", "avx512vl,avx512bitalg")
877-
TARGET_BUILTIN(__builtin_ia32_vpopcntw_128, "V8sV8s", "ncV:128:", "avx512vl,avx512bitalg")
878-
TARGET_BUILTIN(__builtin_ia32_vpopcntb_256, "V32cV32c", "ncV:256:", "avx512vl,avx512bitalg")
879-
TARGET_BUILTIN(__builtin_ia32_vpopcntw_256, "V16sV16s", "ncV:256:", "avx512vl,avx512bitalg")
880-
TARGET_BUILTIN(__builtin_ia32_vpopcntb_512, "V64cV64c", "ncV:512:", "avx512bitalg,evex512")
881-
TARGET_BUILTIN(__builtin_ia32_vpopcntw_512, "V32sV32s", "ncV:512:", "avx512bitalg,evex512")
882-
883869
TARGET_BUILTIN(__builtin_ia32_vpshufbitqmb128_mask, "UsV16cV16cUs", "ncV:128:", "avx512vl,avx512bitalg")
884870
TARGET_BUILTIN(__builtin_ia32_vpshufbitqmb256_mask, "UiV32cV32cUi", "ncV:256:", "avx512vl,avx512bitalg")
885871
TARGET_BUILTIN(__builtin_ia32_vpshufbitqmb512_mask, "UOiV64cV64cUOi", "ncV:512:", "avx512bitalg,evex512")

clang/lib/CodeGen/CGBuiltin.cpp

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -14807,22 +14807,6 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
1480714807
case X86::BI__builtin_ia32_storesd128_mask:
1480814808
return EmitX86MaskedStore(*this, Ops, Align(1));
1480914809

14810-
case X86::BI__builtin_ia32_vpopcntb_128:
14811-
case X86::BI__builtin_ia32_vpopcntd_128:
14812-
case X86::BI__builtin_ia32_vpopcntq_128:
14813-
case X86::BI__builtin_ia32_vpopcntw_128:
14814-
case X86::BI__builtin_ia32_vpopcntb_256:
14815-
case X86::BI__builtin_ia32_vpopcntd_256:
14816-
case X86::BI__builtin_ia32_vpopcntq_256:
14817-
case X86::BI__builtin_ia32_vpopcntw_256:
14818-
case X86::BI__builtin_ia32_vpopcntb_512:
14819-
case X86::BI__builtin_ia32_vpopcntd_512:
14820-
case X86::BI__builtin_ia32_vpopcntq_512:
14821-
case X86::BI__builtin_ia32_vpopcntw_512: {
14822-
llvm::Type *ResultType = ConvertType(E->getType());
14823-
llvm::Function *F = CGM.getIntrinsic(Intrinsic::ctpop, ResultType);
14824-
return Builder.CreateCall(F, Ops);
14825-
}
1482614810
case X86::BI__builtin_ia32_cvtmask2b128:
1482714811
case X86::BI__builtin_ia32_cvtmask2b256:
1482814812
case X86::BI__builtin_ia32_cvtmask2b512:
@@ -17624,15 +17608,6 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
1762417608
return Builder.CreateBitCast(
1762517609
Builder.CreateCall(CGM.getIntrinsic(ID), {Op0, Op1, Op2}), ResultType);
1762617610
}
17627-
case PPC::BI__builtin_altivec_vpopcntb:
17628-
case PPC::BI__builtin_altivec_vpopcnth:
17629-
case PPC::BI__builtin_altivec_vpopcntw:
17630-
case PPC::BI__builtin_altivec_vpopcntd: {
17631-
llvm::Type *ResultType = ConvertType(E->getType());
17632-
Value *X = EmitScalarExpr(E->getArg(0));
17633-
llvm::Function *F = CGM.getIntrinsic(Intrinsic::ctpop, ResultType);
17634-
return Builder.CreateCall(F, X);
17635-
}
1763617611
case PPC::BI__builtin_altivec_vadduqm:
1763717612
case PPC::BI__builtin_altivec_vsubuqm: {
1763817613
Value *Op0 = EmitScalarExpr(E->getArg(0));
@@ -19702,16 +19677,6 @@ Value *CodeGenFunction::EmitSystemZBuiltinExpr(unsigned BuiltinID,
1970219677
// be represented via standard LLVM IR, which is preferable to enable common
1970319678
// LLVM optimizations.
1970419679

19705-
case SystemZ::BI__builtin_s390_vpopctb:
19706-
case SystemZ::BI__builtin_s390_vpopcth:
19707-
case SystemZ::BI__builtin_s390_vpopctf:
19708-
case SystemZ::BI__builtin_s390_vpopctg: {
19709-
llvm::Type *ResultType = ConvertType(E->getType());
19710-
Value *X = EmitScalarExpr(E->getArg(0));
19711-
Function *F = CGM.getIntrinsic(Intrinsic::ctpop, ResultType);
19712-
return Builder.CreateCall(F, X);
19713-
}
19714-
1971519680
case SystemZ::BI__builtin_s390_vclzb:
1971619681
case SystemZ::BI__builtin_s390_vclzh:
1971719682
case SystemZ::BI__builtin_s390_vclzf:
@@ -21613,12 +21578,6 @@ Value *CodeGenFunction::EmitWebAssemblyBuiltinExpr(unsigned BuiltinID,
2161321578
Function *Callee = CGM.getIntrinsic(Intrinsic::wasm_dot);
2161421579
return Builder.CreateCall(Callee, {LHS, RHS});
2161521580
}
21616-
case WebAssembly::BI__builtin_wasm_popcnt_i8x16: {
21617-
Value *Vec = EmitScalarExpr(E->getArg(0));
21618-
Function *Callee =
21619-
CGM.getIntrinsic(Intrinsic::ctpop, ConvertType(E->getType()));
21620-
return Builder.CreateCall(Callee, {Vec});
21621-
}
2162221581
case WebAssembly::BI__builtin_wasm_any_true_v128:
2162321582
case WebAssembly::BI__builtin_wasm_all_true_i8x16:
2162421583
case WebAssembly::BI__builtin_wasm_all_true_i16x8:

clang/lib/Headers/altivec.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2502,37 +2502,37 @@ vec_cmplt(vector unsigned long long __a, vector unsigned long long __b) {
25022502

25032503
static __inline__ vector unsigned char __ATTRS_o_ai
25042504
vec_popcnt(vector signed char __a) {
2505-
return (vector unsigned char)__builtin_altivec_vpopcntb(
2505+
return (vector unsigned char)__builtin_elementwise_popcount(
25062506
(vector unsigned char)__a);
25072507
}
25082508
static __inline__ vector unsigned char __ATTRS_o_ai
25092509
vec_popcnt(vector unsigned char __a) {
2510-
return __builtin_altivec_vpopcntb(__a);
2510+
return __builtin_elementwise_popcount(__a);
25112511
}
25122512
static __inline__ vector unsigned short __ATTRS_o_ai
25132513
vec_popcnt(vector signed short __a) {
2514-
return (vector unsigned short)__builtin_altivec_vpopcnth(
2514+
return (vector unsigned short)__builtin_elementwise_popcount(
25152515
(vector unsigned short)__a);
25162516
}
25172517
static __inline__ vector unsigned short __ATTRS_o_ai
25182518
vec_popcnt(vector unsigned short __a) {
2519-
return __builtin_altivec_vpopcnth(__a);
2519+
return __builtin_elementwise_popcount(__a);
25202520
}
25212521
static __inline__ vector unsigned int __ATTRS_o_ai
25222522
vec_popcnt(vector signed int __a) {
2523-
return __builtin_altivec_vpopcntw((vector unsigned int)__a);
2523+
return __builtin_elementwise_popcount((vector unsigned int)__a);
25242524
}
25252525
static __inline__ vector unsigned int __ATTRS_o_ai
25262526
vec_popcnt(vector unsigned int __a) {
2527-
return __builtin_altivec_vpopcntw(__a);
2527+
return __builtin_elementwise_popcount(__a);
25282528
}
25292529
static __inline__ vector unsigned long long __ATTRS_o_ai
25302530
vec_popcnt(vector signed long long __a) {
2531-
return __builtin_altivec_vpopcntd((vector unsigned long long)__a);
2531+
return __builtin_elementwise_popcount((vector unsigned long long)__a);
25322532
}
25332533
static __inline__ vector unsigned long long __ATTRS_o_ai
25342534
vec_popcnt(vector unsigned long long __a) {
2535-
return __builtin_altivec_vpopcntd(__a);
2535+
return __builtin_elementwise_popcount(__a);
25362536
}
25372537

25382538
#define vec_vclz vec_cntlz

clang/lib/Headers/avx512bitalgintrin.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
static __inline__ __m512i __DEFAULT_FN_ATTRS
2424
_mm512_popcnt_epi16(__m512i __A)
2525
{
26-
return (__m512i) __builtin_ia32_vpopcntw_512((__v32hi) __A);
26+
return (__m512i)__builtin_elementwise_popcount((__v32hu)__A);
2727
}
2828

2929
static __inline__ __m512i __DEFAULT_FN_ATTRS
@@ -45,7 +45,7 @@ _mm512_maskz_popcnt_epi16(__mmask32 __U, __m512i __B)
4545
static __inline__ __m512i __DEFAULT_FN_ATTRS
4646
_mm512_popcnt_epi8(__m512i __A)
4747
{
48-
return (__m512i) __builtin_ia32_vpopcntb_512((__v64qi) __A);
48+
return (__m512i)__builtin_elementwise_popcount((__v64qu)__A);
4949
}
5050

5151
static __inline__ __m512i __DEFAULT_FN_ATTRS

clang/lib/Headers/avx512vlbitalgintrin.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
static __inline__ __m256i __DEFAULT_FN_ATTRS256
2828
_mm256_popcnt_epi16(__m256i __A)
2929
{
30-
return (__m256i) __builtin_ia32_vpopcntw_256((__v16hi) __A);
30+
return (__m256i)__builtin_elementwise_popcount((__v16hu)__A);
3131
}
3232

3333
static __inline__ __m256i __DEFAULT_FN_ATTRS256
@@ -49,7 +49,7 @@ _mm256_maskz_popcnt_epi16(__mmask16 __U, __m256i __B)
4949
static __inline__ __m128i __DEFAULT_FN_ATTRS128
5050
_mm_popcnt_epi16(__m128i __A)
5151
{
52-
return (__m128i) __builtin_ia32_vpopcntw_128((__v8hi) __A);
52+
return (__m128i)__builtin_elementwise_popcount((__v8hu)__A);
5353
}
5454

5555
static __inline__ __m128i __DEFAULT_FN_ATTRS128
@@ -71,7 +71,7 @@ _mm_maskz_popcnt_epi16(__mmask8 __U, __m128i __B)
7171
static __inline__ __m256i __DEFAULT_FN_ATTRS256
7272
_mm256_popcnt_epi8(__m256i __A)
7373
{
74-
return (__m256i) __builtin_ia32_vpopcntb_256((__v32qi) __A);
74+
return (__m256i)__builtin_elementwise_popcount((__v32qu)__A);
7575
}
7676

7777
static __inline__ __m256i __DEFAULT_FN_ATTRS256
@@ -93,7 +93,7 @@ _mm256_maskz_popcnt_epi8(__mmask32 __U, __m256i __B)
9393
static __inline__ __m128i __DEFAULT_FN_ATTRS128
9494
_mm_popcnt_epi8(__m128i __A)
9595
{
96-
return (__m128i) __builtin_ia32_vpopcntb_128((__v16qi) __A);
96+
return (__m128i)__builtin_elementwise_popcount((__v16qu)__A);
9797
}
9898

9999
static __inline__ __m128i __DEFAULT_FN_ATTRS128

clang/lib/Headers/avx512vpopcntdqintrin.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
__min_vector_width__(512)))
2323

2424
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_popcnt_epi64(__m512i __A) {
25-
return (__m512i)__builtin_ia32_vpopcntq_512((__v8di)__A);
25+
return (__m512i)__builtin_elementwise_popcount((__v8du)__A);
2626
}
2727

2828
static __inline__ __m512i __DEFAULT_FN_ATTRS
@@ -37,7 +37,7 @@ _mm512_maskz_popcnt_epi64(__mmask8 __U, __m512i __A) {
3737
}
3838

3939
static __inline__ __m512i __DEFAULT_FN_ATTRS _mm512_popcnt_epi32(__m512i __A) {
40-
return (__m512i)__builtin_ia32_vpopcntd_512((__v16si)__A);
40+
return (__m512i)__builtin_elementwise_popcount((__v16su)__A);
4141
}
4242

4343
static __inline__ __m512i __DEFAULT_FN_ATTRS

clang/lib/Headers/avx512vpopcntdqvlintrin.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
static __inline__ __m128i __DEFAULT_FN_ATTRS128
2929
_mm_popcnt_epi64(__m128i __A) {
30-
return (__m128i)__builtin_ia32_vpopcntq_128((__v2di)__A);
30+
return (__m128i)__builtin_elementwise_popcount((__v2du)__A);
3131
}
3232

3333
static __inline__ __m128i __DEFAULT_FN_ATTRS128
@@ -43,7 +43,7 @@ _mm_maskz_popcnt_epi64(__mmask8 __U, __m128i __A) {
4343

4444
static __inline__ __m128i __DEFAULT_FN_ATTRS128
4545
_mm_popcnt_epi32(__m128i __A) {
46-
return (__m128i)__builtin_ia32_vpopcntd_128((__v4si)__A);
46+
return (__m128i)__builtin_elementwise_popcount((__v4su)__A);
4747
}
4848

4949
static __inline__ __m128i __DEFAULT_FN_ATTRS128
@@ -59,7 +59,7 @@ _mm_maskz_popcnt_epi32(__mmask8 __U, __m128i __A) {
5959

6060
static __inline__ __m256i __DEFAULT_FN_ATTRS256
6161
_mm256_popcnt_epi64(__m256i __A) {
62-
return (__m256i)__builtin_ia32_vpopcntq_256((__v4di)__A);
62+
return (__m256i)__builtin_elementwise_popcount((__v4du)__A);
6363
}
6464

6565
static __inline__ __m256i __DEFAULT_FN_ATTRS256
@@ -75,7 +75,7 @@ _mm256_maskz_popcnt_epi64(__mmask8 __U, __m256i __A) {
7575

7676
static __inline__ __m256i __DEFAULT_FN_ATTRS256
7777
_mm256_popcnt_epi32(__m256i __A) {
78-
return (__m256i)__builtin_ia32_vpopcntd_256((__v8si)__A);
78+
return (__m256i)__builtin_elementwise_popcount((__v8su)__A);
7979
}
8080

8181
static __inline__ __m256i __DEFAULT_FN_ATTRS256

clang/lib/Headers/vecintrin.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6477,42 +6477,42 @@ vec_cnttz(__vector unsigned long long __a) {
64776477

64786478
static inline __ATTRS_o_ai __vector unsigned char
64796479
vec_popcnt(__vector signed char __a) {
6480-
return __builtin_s390_vpopctb((__vector unsigned char)__a);
6480+
return __builtin_elementwise_popcount((__vector unsigned char)__a);
64816481
}
64826482

64836483
static inline __ATTRS_o_ai __vector unsigned char
64846484
vec_popcnt(__vector unsigned char __a) {
6485-
return __builtin_s390_vpopctb(__a);
6485+
return __builtin_elementwise_popcount(__a);
64866486
}
64876487

64886488
static inline __ATTRS_o_ai __vector unsigned short
64896489
vec_popcnt(__vector signed short __a) {
6490-
return __builtin_s390_vpopcth((__vector unsigned short)__a);
6490+
return __builtin_elementwise_popcount((__vector unsigned short)__a);
64916491
}
64926492

64936493
static inline __ATTRS_o_ai __vector unsigned short
64946494
vec_popcnt(__vector unsigned short __a) {
6495-
return __builtin_s390_vpopcth(__a);
6495+
return __builtin_elementwise_popcount(__a);
64966496
}
64976497

64986498
static inline __ATTRS_o_ai __vector unsigned int
64996499
vec_popcnt(__vector signed int __a) {
6500-
return __builtin_s390_vpopctf((__vector unsigned int)__a);
6500+
return __builtin_elementwise_popcount((__vector unsigned int)__a);
65016501
}
65026502

65036503
static inline __ATTRS_o_ai __vector unsigned int
65046504
vec_popcnt(__vector unsigned int __a) {
6505-
return __builtin_s390_vpopctf(__a);
6505+
return __builtin_elementwise_popcount(__a);
65066506
}
65076507

65086508
static inline __ATTRS_o_ai __vector unsigned long long
65096509
vec_popcnt(__vector signed long long __a) {
6510-
return __builtin_s390_vpopctg((__vector unsigned long long)__a);
6510+
return __builtin_elementwise_popcount((__vector unsigned long long)__a);
65116511
}
65126512

65136513
static inline __ATTRS_o_ai __vector unsigned long long
65146514
vec_popcnt(__vector unsigned long long __a) {
6515-
return __builtin_s390_vpopctg(__a);
6515+
return __builtin_elementwise_popcount(__a);
65166516
}
65176517

65186518
/*-- vec_rl -----------------------------------------------------------------*/

clang/lib/Headers/wasm_simd128.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -957,7 +957,7 @@ static __inline__ uint32_t __DEFAULT_FN_ATTRS wasm_i8x16_bitmask(v128_t __a) {
957957
}
958958

959959
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_popcnt(v128_t __a) {
960-
return (v128_t)__builtin_wasm_popcnt_i8x16((__i8x16)__a);
960+
return (v128_t)__builtin_elementwise_popcount((__i8x16)__a);
961961
}
962962

963963
static __inline__ v128_t __DEFAULT_FN_ATTRS wasm_i8x16_shl(v128_t __a,

clang/test/CodeGen/SystemZ/builtins-systemz-vector.c

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -301,15 +301,6 @@ void test_integer(void) {
301301
vul = __builtin_s390_vmlof(vui, vui);
302302
// CHECK: call <2 x i64> @llvm.s390.vmlof(<4 x i32> %{{.*}}, <4 x i32> %{{.*}})
303303

304-
vuc = __builtin_s390_vpopctb(vuc);
305-
// CHECK: call <16 x i8> @llvm.ctpop.v16i8(<16 x i8> %{{.*}})
306-
vus = __builtin_s390_vpopcth(vus);
307-
// CHECK: call <8 x i16> @llvm.ctpop.v8i16(<8 x i16> %{{.*}})
308-
vui = __builtin_s390_vpopctf(vui);
309-
// CHECK: call <4 x i32> @llvm.ctpop.v4i32(<4 x i32> %{{.*}})
310-
vul = __builtin_s390_vpopctg(vul);
311-
// CHECK: call <2 x i64> @llvm.ctpop.v2i64(<2 x i64> %{{.*}})
312-
313304
si128 = __builtin_s390_vsq(si128, si128);
314305
// CHECK: call i128 @llvm.s390.vsq(i128 %{{.*}}, i128 %{{.*}})
315306
ui128 = __builtin_s390_vsbiq(ui128, ui128, ui128);

clang/test/CodeGen/X86/avx512bitalg-builtins.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ __m512i test_mm512_popcnt_epi16(__m512i __A) {
1111
__m512i test_mm512_mask_popcnt_epi16(__m512i __A, __mmask32 __U, __m512i __B) {
1212
// CHECK-LABEL: @test_mm512_mask_popcnt_epi16
1313
// CHECK: @llvm.ctpop.v32i16
14-
// CHECK: select <32 x i1> %{{[0-9]+}}, <32 x i16> %{{[0-9]+}}, <32 x i16> {{.*}}
14+
// CHECK: select <32 x i1> %{{[0-9]+}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
1515
return _mm512_mask_popcnt_epi16(__A, __U, __B);
1616
}
1717
__m512i test_mm512_maskz_popcnt_epi16(__mmask32 __U, __m512i __B) {
1818
// CHECK-LABEL: @test_mm512_maskz_popcnt_epi16
1919
// CHECK: @llvm.ctpop.v32i16
20-
// CHECK: select <32 x i1> %{{[0-9]+}}, <32 x i16> %{{[0-9]+}}, <32 x i16> {{.*}}
20+
// CHECK: select <32 x i1> %{{[0-9]+}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
2121
return _mm512_maskz_popcnt_epi16(__U, __B);
2222
}
2323

@@ -30,13 +30,13 @@ __m512i test_mm512_popcnt_epi8(__m512i __A) {
3030
__m512i test_mm512_mask_popcnt_epi8(__m512i __A, __mmask64 __U, __m512i __B) {
3131
// CHECK-LABEL: @test_mm512_mask_popcnt_epi8
3232
// CHECK: @llvm.ctpop.v64i8
33-
// CHECK: select <64 x i1> %{{[0-9]+}}, <64 x i8> %{{[0-9]+}}, <64 x i8> {{.*}}
33+
// CHECK: select <64 x i1> %{{[0-9]+}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
3434
return _mm512_mask_popcnt_epi8(__A, __U, __B);
3535
}
3636
__m512i test_mm512_maskz_popcnt_epi8(__mmask64 __U, __m512i __B) {
3737
// CHECK-LABEL: @test_mm512_maskz_popcnt_epi8
3838
// CHECK: @llvm.ctpop.v64i8
39-
// CHECK: select <64 x i1> %{{[0-9]+}}, <64 x i8> %{{[0-9]+}}, <64 x i8> {{.*}}
39+
// CHECK: select <64 x i1> %{{[0-9]+}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
4040
return _mm512_maskz_popcnt_epi8(__U, __B);
4141
}
4242

0 commit comments

Comments
 (0)