Skip to content

Commit b014d10

Browse files
committed
[X86] avx512cd-builtins.c + avx512vlcd-builtins.c - add C/C++ and 32/64-bit test coverage
1 parent 30c7951 commit b014d10

File tree

2 files changed

+77
-71
lines changed

2 files changed

+77
-71
lines changed

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

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,79 +1,82 @@
1-
// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
1+
// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
2+
// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
3+
// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
4+
// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
25

36

47
#include <immintrin.h>
58

69
__m512i test_mm512_conflict_epi64(__m512i __A) {
7-
// CHECK-LABEL: @test_mm512_conflict_epi64
8-
// CHECK: @llvm.x86.avx512.conflict.q.512
10+
// CHECK-LABEL: test_mm512_conflict_epi64
11+
// CHECK: call {{.*}}<8 x i64> @llvm.x86.avx512.conflict.q.512(<8 x i64> %{{.*}})
912
return _mm512_conflict_epi64(__A);
1013
}
1114
__m512i test_mm512_mask_conflict_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
12-
// CHECK-LABEL: @test_mm512_mask_conflict_epi64
13-
// CHECK: @llvm.x86.avx512.conflict.q.512
15+
// CHECK-LABEL: test_mm512_mask_conflict_epi64
16+
// CHECK: call {{.*}}<8 x i64> @llvm.x86.avx512.conflict.q.512(<8 x i64> %{{.*}})
1417
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
1518
return _mm512_mask_conflict_epi64(__W,__U,__A);
1619
}
1720
__m512i test_mm512_maskz_conflict_epi64(__mmask8 __U, __m512i __A) {
18-
// CHECK-LABEL: @test_mm512_maskz_conflict_epi64
19-
// CHECK: @llvm.x86.avx512.conflict.q.512
21+
// CHECK-LABEL: test_mm512_maskz_conflict_epi64
22+
// CHECK: call {{.*}}<8 x i64> @llvm.x86.avx512.conflict.q.512(<8 x i64> %{{.*}})
2023
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
2124
return _mm512_maskz_conflict_epi64(__U,__A);
2225
}
2326
__m512i test_mm512_conflict_epi32(__m512i __A) {
24-
// CHECK-LABEL: @test_mm512_conflict_epi32
25-
// CHECK: @llvm.x86.avx512.conflict.d.512
27+
// CHECK-LABEL: test_mm512_conflict_epi32
28+
// CHECK: call <16 x i32> @llvm.x86.avx512.conflict.d.512(<16 x i32> %{{.*}})
2629
return _mm512_conflict_epi32(__A);
2730
}
2831
__m512i test_mm512_mask_conflict_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
29-
// CHECK-LABEL: @test_mm512_mask_conflict_epi32
30-
// CHECK: @llvm.x86.avx512.conflict.d.512
32+
// CHECK-LABEL: test_mm512_mask_conflict_epi32
33+
// CHECK: call <16 x i32> @llvm.x86.avx512.conflict.d.512(<16 x i32> %{{.*}})
3134
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3235
return _mm512_mask_conflict_epi32(__W,__U,__A);
3336
}
3437
__m512i test_mm512_maskz_conflict_epi32(__mmask16 __U, __m512i __A) {
35-
// CHECK-LABEL: @test_mm512_maskz_conflict_epi32
36-
// CHECK: @llvm.x86.avx512.conflict.d.512
38+
// CHECK-LABEL: test_mm512_maskz_conflict_epi32
39+
// CHECK: call <16 x i32> @llvm.x86.avx512.conflict.d.512(<16 x i32> %{{.*}})
3740
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
3841
return _mm512_maskz_conflict_epi32(__U,__A);
3942
}
4043
__m512i test_mm512_lzcnt_epi32(__m512i __A) {
41-
// CHECK-LABEL: @test_mm512_lzcnt_epi32
44+
// CHECK-LABEL: test_mm512_lzcnt_epi32
4245
// CHECK: call <16 x i32> @llvm.ctlz.v16i32(<16 x i32> %{{.*}}, i1 false)
4346
return _mm512_lzcnt_epi32(__A);
4447
}
4548
__m512i test_mm512_mask_lzcnt_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
46-
// CHECK-LABEL: @test_mm512_mask_lzcnt_epi32
49+
// CHECK-LABEL: test_mm512_mask_lzcnt_epi32
4750
// CHECK: call <16 x i32> @llvm.ctlz.v16i32(<16 x i32> %{{.*}}, i1 false)
4851
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
4952
return _mm512_mask_lzcnt_epi32(__W,__U,__A);
5053
}
5154
__m512i test_mm512_maskz_lzcnt_epi32(__mmask16 __U, __m512i __A) {
52-
// CHECK-LABEL: @test_mm512_maskz_lzcnt_epi32
55+
// CHECK-LABEL: test_mm512_maskz_lzcnt_epi32
5356
// CHECK: call <16 x i32> @llvm.ctlz.v16i32(<16 x i32> %{{.*}}, i1 false)
5457
// CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
5558
return _mm512_maskz_lzcnt_epi32(__U,__A);
5659
}
5760
__m512i test_mm512_lzcnt_epi64(__m512i __A) {
58-
// CHECK-LABEL: @test_mm512_lzcnt_epi64
59-
// CHECK: call <8 x i64> @llvm.ctlz.v8i64(<8 x i64> %{{.*}}, i1 false)
61+
// CHECK-LABEL: test_mm512_lzcnt_epi64
62+
// CHECK: call {{.*}}<8 x i64> @llvm.ctlz.v8i64(<8 x i64> %{{.*}}, i1 false)
6063
return _mm512_lzcnt_epi64(__A);
6164
}
6265
__m512i test_mm512_mask_lzcnt_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
63-
// CHECK-LABEL: @test_mm512_mask_lzcnt_epi64
64-
// CHECK: call <8 x i64> @llvm.ctlz.v8i64(<8 x i64> %{{.*}}, i1 false)
66+
// CHECK-LABEL: test_mm512_mask_lzcnt_epi64
67+
// CHECK: call {{.*}}<8 x i64> @llvm.ctlz.v8i64(<8 x i64> %{{.*}}, i1 false)
6568
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
6669
return _mm512_mask_lzcnt_epi64(__W,__U,__A);
6770
}
6871
__m512i test_mm512_maskz_lzcnt_epi64(__mmask8 __U, __m512i __A) {
69-
// CHECK-LABEL: @test_mm512_maskz_lzcnt_epi64
70-
// CHECK: call <8 x i64> @llvm.ctlz.v8i64(<8 x i64> %{{.*}}, i1 false)
72+
// CHECK-LABEL: test_mm512_maskz_lzcnt_epi64
73+
// CHECK: call {{.*}}<8 x i64> @llvm.ctlz.v8i64(<8 x i64> %{{.*}}, i1 false)
7174
// CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
7275
return _mm512_maskz_lzcnt_epi64(__U,__A);
7376
}
7477

7578
__m512i test_mm512_broadcastmb_epi64(__m512i a, __m512i b) {
76-
// CHECK-LABEL: @test_mm512_broadcastmb_epi64
79+
// CHECK-LABEL: test_mm512_broadcastmb_epi64
7780
// CHECK: icmp eq <8 x i64> %{{.*}}, %{{.*}}
7881
// CHECK: zext i8 %{{.*}} to i64
7982
// CHECK: insertelement <8 x i64> poison, i64 %{{.*}}, i32 0
@@ -88,7 +91,7 @@ __m512i test_mm512_broadcastmb_epi64(__m512i a, __m512i b) {
8891
}
8992

9093
__m512i test_mm512_broadcastmw_epi32(__m512i a, __m512i b) {
91-
// CHECK-LABEL: @test_mm512_broadcastmw_epi32
94+
// CHECK-LABEL: test_mm512_broadcastmw_epi32
9295
// CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
9396
// CHECK: zext i16 %{{.*}} to i32
9497
// CHECK: insertelement <16 x i32> poison, i32 %{{.*}}
Lines changed: 50 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
// RUN: %clang_cc1 -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512vl -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
1+
// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512vl -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
2+
// RUN: %clang_cc1 -x c -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx512vl -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
3+
// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512vl -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
4+
// RUN: %clang_cc1 -x c++ -flax-vector-conversions=none -ffreestanding %s -triple=i386-apple-darwin -target-feature +avx512vl -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
25

36

47
#include <immintrin.h>
58

69
__m128i test_mm_broadcastmb_epi64(__m128i a,__m128i b) {
7-
// CHECK-LABEL: @test_mm_broadcastmb_epi64
10+
// CHECK-LABEL: test_mm_broadcastmb_epi64
811
// CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}}
912
// CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
1013
// CHECK: zext i8 %{{.*}} to i64
@@ -14,7 +17,7 @@ __m128i test_mm_broadcastmb_epi64(__m128i a,__m128i b) {
1417
}
1518

1619
__m256i test_mm256_broadcastmb_epi64(__m256i a, __m256i b) {
17-
// CHECK-LABEL: @test_mm256_broadcastmb_epi64
20+
// CHECK-LABEL: test_mm256_broadcastmb_epi64
1821
// CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}}
1922
// CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
2023
// CHECK: zext i8 %{{.*}} to i64
@@ -26,7 +29,7 @@ __m256i test_mm256_broadcastmb_epi64(__m256i a, __m256i b) {
2629
}
2730

2831
__m128i test_mm_broadcastmw_epi32(__m512i a, __m512i b) {
29-
// CHECK-LABEL: @test_mm_broadcastmw_epi32
32+
// CHECK-LABEL: test_mm_broadcastmw_epi32
3033
// CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
3134
// CHECK: zext i16 %{{.*}} to i32
3235
// CHECK: insertelement <4 x i32> poison, i32 %{{.*}}, i32 0
@@ -37,7 +40,7 @@ __m128i test_mm_broadcastmw_epi32(__m512i a, __m512i b) {
3740
}
3841

3942
__m256i test_mm256_broadcastmw_epi32(__m512i a, __m512i b) {
40-
// CHECK-LABEL: @test_mm256_broadcastmw_epi32
43+
// CHECK-LABEL: test_mm256_broadcastmw_epi32
4144
// CHECK: icmp eq <16 x i32> %{{.*}}, %{{.*}}
4245
// CHECK: zext i16 %{{.*}} to i32
4346
// CHECK: insertelement <8 x i32> poison, i32 %{{.*}}, i32 0
@@ -52,161 +55,161 @@ __m256i test_mm256_broadcastmw_epi32(__m512i a, __m512i b) {
5255
}
5356

5457
__m128i test_mm_conflict_epi64(__m128i __A) {
55-
// CHECK-LABEL: @test_mm_conflict_epi64
56-
// CHECK: @llvm.x86.avx512.conflict.q.128
58+
// CHECK-LABEL: test_mm_conflict_epi64
59+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.conflict.q.128(<2 x i64> %{{.*}})
5760
return _mm_conflict_epi64(__A);
5861
}
5962

6063
__m128i test_mm_mask_conflict_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
61-
// CHECK-LABEL: @test_mm_mask_conflict_epi64
62-
// CHECK: @llvm.x86.avx512.conflict.q.128
64+
// CHECK-LABEL: test_mm_mask_conflict_epi64
65+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.conflict.q.128(<2 x i64> %{{.*}})
6366
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
6467
return _mm_mask_conflict_epi64(__W, __U, __A);
6568
}
6669

6770
__m128i test_mm_maskz_conflict_epi64(__mmask8 __U, __m128i __A) {
68-
// CHECK-LABEL: @test_mm_maskz_conflict_epi64
69-
// CHECK: @llvm.x86.avx512.conflict.q.128
71+
// CHECK-LABEL: test_mm_maskz_conflict_epi64
72+
// CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.conflict.q.128(<2 x i64> %{{.*}})
7073
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
7174
return _mm_maskz_conflict_epi64(__U, __A);
7275
}
7376

7477
__m256i test_mm256_conflict_epi64(__m256i __A) {
75-
// CHECK-LABEL: @test_mm256_conflict_epi64
76-
// CHECK: @llvm.x86.avx512.conflict.q.256
78+
// CHECK-LABEL: test_mm256_conflict_epi64
79+
// CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.conflict.q.256(<4 x i64> %{{.*}})
7780
return _mm256_conflict_epi64(__A);
7881
}
7982

8083
__m256i test_mm256_mask_conflict_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
81-
// CHECK-LABEL: @test_mm256_mask_conflict_epi64
82-
// CHECK: @llvm.x86.avx512.conflict.q.256
84+
// CHECK-LABEL: test_mm256_mask_conflict_epi64
85+
// CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.conflict.q.256(<4 x i64> %{{.*}})
8386
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
8487
return _mm256_mask_conflict_epi64(__W, __U, __A);
8588
}
8689

8790
__m256i test_mm256_maskz_conflict_epi64(__mmask8 __U, __m256i __A) {
88-
// CHECK-LABEL: @test_mm256_maskz_conflict_epi64
89-
// CHECK: @llvm.x86.avx512.conflict.q.256
91+
// CHECK-LABEL: test_mm256_maskz_conflict_epi64
92+
// CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.conflict.q.256(<4 x i64> %{{.*}})
9093
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
9194
return _mm256_maskz_conflict_epi64(__U, __A);
9295
}
9396

9497
__m128i test_mm_conflict_epi32(__m128i __A) {
95-
// CHECK-LABEL: @test_mm_conflict_epi32
96-
// CHECK: @llvm.x86.avx512.conflict.d.128
98+
// CHECK-LABEL: test_mm_conflict_epi32
99+
// CHECK: call <4 x i32> @llvm.x86.avx512.conflict.d.128(<4 x i32> %{{.*}})
97100
return _mm_conflict_epi32(__A);
98101
}
99102

100103
__m128i test_mm_mask_conflict_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
101-
// CHECK-LABEL: @test_mm_mask_conflict_epi32
102-
// CHECK: @llvm.x86.avx512.conflict.d.128
104+
// CHECK-LABEL: test_mm_mask_conflict_epi32
105+
// CHECK: call <4 x i32> @llvm.x86.avx512.conflict.d.128(<4 x i32> %{{.*}})
103106
// CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
104107
return _mm_mask_conflict_epi32(__W, __U, __A);
105108
}
106109

107110
__m128i test_mm_maskz_conflict_epi32(__mmask8 __U, __m128i __A) {
108-
// CHECK-LABEL: @test_mm_maskz_conflict_epi32
109-
// CHECK: @llvm.x86.avx512.conflict.d.128
111+
// CHECK-LABEL: test_mm_maskz_conflict_epi32
112+
// CHECK: call <4 x i32> @llvm.x86.avx512.conflict.d.128(<4 x i32> %{{.*}})
110113
// CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
111114
return _mm_maskz_conflict_epi32(__U, __A);
112115
}
113116

114117
__m256i test_mm256_conflict_epi32(__m256i __A) {
115-
// CHECK-LABEL: @test_mm256_conflict_epi32
116-
// CHECK: @llvm.x86.avx512.conflict.d.256
118+
// CHECK-LABEL: test_mm256_conflict_epi32
119+
// CHECK: call <8 x i32> @llvm.x86.avx512.conflict.d.256(<8 x i32> %{{.*}})
117120
return _mm256_conflict_epi32(__A);
118121
}
119122

120123
__m256i test_mm256_mask_conflict_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
121-
// CHECK-LABEL: @test_mm256_mask_conflict_epi32
122-
// CHECK: @llvm.x86.avx512.conflict.d.256
124+
// CHECK-LABEL: test_mm256_mask_conflict_epi32
125+
// CHECK: call <8 x i32> @llvm.x86.avx512.conflict.d.256(<8 x i32> %{{.*}})
123126
// CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
124127
return _mm256_mask_conflict_epi32(__W, __U, __A);
125128
}
126129

127130
__m256i test_mm256_maskz_conflict_epi32(__mmask8 __U, __m256i __A) {
128-
// CHECK-LABEL: @test_mm256_maskz_conflict_epi32
129-
// CHECK: @llvm.x86.avx512.conflict.d.256
131+
// CHECK-LABEL: test_mm256_maskz_conflict_epi32
132+
// CHECK: call <8 x i32> @llvm.x86.avx512.conflict.d.256(<8 x i32> %{{.*}})
130133
// CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
131134
return _mm256_maskz_conflict_epi32(__U, __A);
132135
}
133136

134137
__m128i test_mm_lzcnt_epi32(__m128i __A) {
135-
// CHECK-LABEL: @test_mm_lzcnt_epi32
138+
// CHECK-LABEL: test_mm_lzcnt_epi32
136139
// CHECK: call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %{{.*}}, i1 false)
137140
return _mm_lzcnt_epi32(__A);
138141
}
139142

140143
__m128i test_mm_mask_lzcnt_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
141-
// CHECK-LABEL: @test_mm_mask_lzcnt_epi32
144+
// CHECK-LABEL: test_mm_mask_lzcnt_epi32
142145
// CHECK: call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %{{.*}}, i1 false)
143146
// CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
144147
return _mm_mask_lzcnt_epi32(__W, __U, __A);
145148
}
146149

147150
__m128i test_mm_maskz_lzcnt_epi32(__mmask8 __U, __m128i __A) {
148-
// CHECK-LABEL: @test_mm_maskz_lzcnt_epi32
151+
// CHECK-LABEL: test_mm_maskz_lzcnt_epi32
149152
// CHECK: call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %{{.*}}, i1 false)
150153
// CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
151154
return _mm_maskz_lzcnt_epi32(__U, __A);
152155
}
153156

154157
__m256i test_mm256_lzcnt_epi32(__m256i __A) {
155-
// CHECK-LABEL: @test_mm256_lzcnt_epi32
158+
// CHECK-LABEL: test_mm256_lzcnt_epi32
156159
// CHECK: call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> %{{.*}}, i1 false)
157160
return _mm256_lzcnt_epi32(__A);
158161
}
159162

160163
__m256i test_mm256_mask_lzcnt_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
161-
// CHECK-LABEL: @test_mm256_mask_lzcnt_epi32
164+
// CHECK-LABEL: test_mm256_mask_lzcnt_epi32
162165
// CHECK: call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> %{{.*}}, i1 false)
163166
// CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
164167
return _mm256_mask_lzcnt_epi32(__W, __U, __A);
165168
}
166169

167170
__m256i test_mm256_maskz_lzcnt_epi32(__mmask8 __U, __m256i __A) {
168-
// CHECK-LABEL: @test_mm256_maskz_lzcnt_epi32
171+
// CHECK-LABEL: test_mm256_maskz_lzcnt_epi32
169172
// CHECK: call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> %{{.*}}, i1 false)
170173
// CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
171174
return _mm256_maskz_lzcnt_epi32(__U, __A);
172175
}
173176

174177
__m128i test_mm_lzcnt_epi64(__m128i __A) {
175-
// CHECK-LABEL: @test_mm_lzcnt_epi64
176-
// CHECK: call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
178+
// CHECK-LABEL: test_mm_lzcnt_epi64
179+
// CHECK: call {{.*}}<2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
177180
return _mm_lzcnt_epi64(__A);
178181
}
179182

180183
__m128i test_mm_mask_lzcnt_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
181-
// CHECK-LABEL: @test_mm_mask_lzcnt_epi64
182-
// CHECK: call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
184+
// CHECK-LABEL: test_mm_mask_lzcnt_epi64
185+
// CHECK: call {{.*}}<2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
183186
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
184187
return _mm_mask_lzcnt_epi64(__W, __U, __A);
185188
}
186189

187190
__m128i test_mm_maskz_lzcnt_epi64(__mmask8 __U, __m128i __A) {
188-
// CHECK-LABEL: @test_mm_maskz_lzcnt_epi64
189-
// CHECK: call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
191+
// CHECK-LABEL: test_mm_maskz_lzcnt_epi64
192+
// CHECK: call {{.*}}<2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
190193
// CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
191194
return _mm_maskz_lzcnt_epi64(__U, __A);
192195
}
193196

194197
__m256i test_mm256_lzcnt_epi64(__m256i __A) {
195-
// CHECK-LABEL: @test_mm256_lzcnt_epi64
196-
// CHECK: call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
198+
// CHECK-LABEL: test_mm256_lzcnt_epi64
199+
// CHECK: call {{.*}}<4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
197200
return _mm256_lzcnt_epi64(__A);
198201
}
199202

200203
__m256i test_mm256_mask_lzcnt_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
201-
// CHECK-LABEL: @test_mm256_mask_lzcnt_epi64
202-
// CHECK: call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
204+
// CHECK-LABEL: test_mm256_mask_lzcnt_epi64
205+
// CHECK: call {{.*}}<4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
203206
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
204207
return _mm256_mask_lzcnt_epi64(__W, __U, __A);
205208
}
206209

207210
__m256i test_mm256_maskz_lzcnt_epi64(__mmask8 __U, __m256i __A) {
208-
// CHECK-LABEL: @test_mm256_maskz_lzcnt_epi64
209-
// CHECK: call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
211+
// CHECK-LABEL: test_mm256_maskz_lzcnt_epi64
212+
// CHECK: call {{.*}}<4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
210213
// CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
211214
return _mm256_maskz_lzcnt_epi64(__U, __A);
212215
}

0 commit comments

Comments
 (0)