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