1 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512vl -target-feature +avx512cd -emit-llvm -o - -Wall -Werror | FileCheck %s
6 __m128i test_mm_broadcastmb_epi64(__mmask8 __A) {
7 // CHECK-LABEL: @test_mm_broadcastmb_epi64
8 // CHECK: @llvm.x86.avx512.broadcastmb.128
9 return _mm_broadcastmb_epi64(__A);
12 __m256i test_mm256_broadcastmb_epi64(__mmask8 __A) {
13 // CHECK-LABEL: @test_mm256_broadcastmb_epi64
14 // CHECK: @llvm.x86.avx512.broadcastmb.256
15 return _mm256_broadcastmb_epi64(__A);
18 __m128i test_mm_broadcastmw_epi32(__mmask16 __A) {
19 // CHECK-LABEL: @test_mm_broadcastmw_epi32
20 // CHECK: @llvm.x86.avx512.broadcastmw.128
21 return _mm_broadcastmw_epi32(__A);
24 __m256i test_mm256_broadcastmw_epi32(__mmask16 __A) {
25 // CHECK-LABEL: @test_mm256_broadcastmw_epi32
26 // CHECK: @llvm.x86.avx512.broadcastmw.256
27 return _mm256_broadcastmw_epi32(__A);
30 __m128i test_mm_conflict_epi64(__m128i __A) {
31 // CHECK-LABEL: @test_mm_conflict_epi64
32 // CHECK: @llvm.x86.avx512.mask.conflict.q.128
33 return _mm_conflict_epi64(__A);
36 __m128i test_mm_mask_conflict_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
37 // CHECK-LABEL: @test_mm_mask_conflict_epi64
38 // CHECK: @llvm.x86.avx512.mask.conflict.q.128
39 return _mm_mask_conflict_epi64(__W, __U, __A);
42 __m128i test_mm_maskz_conflict_epi64(__mmask8 __U, __m128i __A) {
43 // CHECK-LABEL: @test_mm_maskz_conflict_epi64
44 // CHECK: @llvm.x86.avx512.mask.conflict.q.128
45 return _mm_maskz_conflict_epi64(__U, __A);
48 __m256i test_mm256_conflict_epi64(__m256i __A) {
49 // CHECK-LABEL: @test_mm256_conflict_epi64
50 // CHECK: @llvm.x86.avx512.mask.conflict.q.256
51 return _mm256_conflict_epi64(__A);
54 __m256i test_mm256_mask_conflict_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
55 // CHECK-LABEL: @test_mm256_mask_conflict_epi64
56 // CHECK: @llvm.x86.avx512.mask.conflict.q.256
57 return _mm256_mask_conflict_epi64(__W, __U, __A);
60 __m256i test_mm256_maskz_conflict_epi64(__mmask8 __U, __m256i __A) {
61 // CHECK-LABEL: @test_mm256_maskz_conflict_epi64
62 // CHECK: @llvm.x86.avx512.mask.conflict.q.256
63 return _mm256_maskz_conflict_epi64(__U, __A);
66 __m128i test_mm_conflict_epi32(__m128i __A) {
67 // CHECK-LABEL: @test_mm_conflict_epi32
68 // CHECK: @llvm.x86.avx512.mask.conflict.d.128
69 return _mm_conflict_epi32(__A);
72 __m128i test_mm_mask_conflict_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
73 // CHECK-LABEL: @test_mm_mask_conflict_epi32
74 // CHECK: @llvm.x86.avx512.mask.conflict.d.128
75 return _mm_mask_conflict_epi32(__W, __U, __A);
78 __m128i test_mm_maskz_conflict_epi32(__mmask8 __U, __m128i __A) {
79 // CHECK-LABEL: @test_mm_maskz_conflict_epi32
80 // CHECK: @llvm.x86.avx512.mask.conflict.d.128
81 return _mm_maskz_conflict_epi32(__U, __A);
84 __m256i test_mm256_conflict_epi32(__m256i __A) {
85 // CHECK-LABEL: @test_mm256_conflict_epi32
86 // CHECK: @llvm.x86.avx512.mask.conflict.d.256
87 return _mm256_conflict_epi32(__A);
90 __m256i test_mm256_mask_conflict_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
91 // CHECK-LABEL: @test_mm256_mask_conflict_epi32
92 // CHECK: @llvm.x86.avx512.mask.conflict.d.256
93 return _mm256_mask_conflict_epi32(__W, __U, __A);
96 __m256i test_mm256_maskz_conflict_epi32(__mmask8 __U, __m256i __A) {
97 // CHECK-LABEL: @test_mm256_maskz_conflict_epi32
98 // CHECK: @llvm.x86.avx512.mask.conflict.d.256
99 return _mm256_maskz_conflict_epi32(__U, __A);
102 __m128i test_mm_lzcnt_epi32(__m128i __A) {
103 // CHECK-LABEL: @test_mm_lzcnt_epi32
104 // CHECK: call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %{{.*}}, i1 false)
105 return _mm_lzcnt_epi32(__A);
108 __m128i test_mm_mask_lzcnt_epi32(__m128i __W, __mmask8 __U, __m128i __A) {
109 // CHECK-LABEL: @test_mm_mask_lzcnt_epi32
110 // CHECK: call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %{{.*}}, i1 false)
111 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
112 return _mm_mask_lzcnt_epi32(__W, __U, __A);
115 __m128i test_mm_maskz_lzcnt_epi32(__mmask8 __U, __m128i __A) {
116 // CHECK-LABEL: @test_mm_maskz_lzcnt_epi32
117 // CHECK: call <4 x i32> @llvm.ctlz.v4i32(<4 x i32> %{{.*}}, i1 false)
118 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
119 return _mm_maskz_lzcnt_epi32(__U, __A);
122 __m256i test_mm256_lzcnt_epi32(__m256i __A) {
123 // CHECK-LABEL: @test_mm256_lzcnt_epi32
124 // CHECK: call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> %{{.*}}, i1 false)
125 return _mm256_lzcnt_epi32(__A);
128 __m256i test_mm256_mask_lzcnt_epi32(__m256i __W, __mmask8 __U, __m256i __A) {
129 // CHECK-LABEL: @test_mm256_mask_lzcnt_epi32
130 // CHECK: call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> %{{.*}}, i1 false)
131 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
132 return _mm256_mask_lzcnt_epi32(__W, __U, __A);
135 __m256i test_mm256_maskz_lzcnt_epi32(__mmask8 __U, __m256i __A) {
136 // CHECK-LABEL: @test_mm256_maskz_lzcnt_epi32
137 // CHECK: call <8 x i32> @llvm.ctlz.v8i32(<8 x i32> %{{.*}}, i1 false)
138 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
139 return _mm256_maskz_lzcnt_epi32(__U, __A);
142 __m128i test_mm_lzcnt_epi64(__m128i __A) {
143 // CHECK-LABEL: @test_mm_lzcnt_epi64
144 // CHECK: call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
145 return _mm_lzcnt_epi64(__A);
148 __m128i test_mm_mask_lzcnt_epi64(__m128i __W, __mmask8 __U, __m128i __A) {
149 // CHECK-LABEL: @test_mm_mask_lzcnt_epi64
150 // CHECK: call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
151 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
152 return _mm_mask_lzcnt_epi64(__W, __U, __A);
155 __m128i test_mm_maskz_lzcnt_epi64(__mmask8 __U, __m128i __A) {
156 // CHECK-LABEL: @test_mm_maskz_lzcnt_epi64
157 // CHECK: call <2 x i64> @llvm.ctlz.v2i64(<2 x i64> %{{.*}}, i1 false)
158 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
159 return _mm_maskz_lzcnt_epi64(__U, __A);
162 __m256i test_mm256_lzcnt_epi64(__m256i __A) {
163 // CHECK-LABEL: @test_mm256_lzcnt_epi64
164 // CHECK: call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
165 return _mm256_lzcnt_epi64(__A);
168 __m256i test_mm256_mask_lzcnt_epi64(__m256i __W, __mmask8 __U, __m256i __A) {
169 // CHECK-LABEL: @test_mm256_mask_lzcnt_epi64
170 // CHECK: call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
171 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
172 return _mm256_mask_lzcnt_epi64(__W, __U, __A);
175 __m256i test_mm256_maskz_lzcnt_epi64(__mmask8 __U, __m256i __A) {
176 // CHECK-LABEL: @test_mm256_maskz_lzcnt_epi64
177 // CHECK: call <4 x i64> @llvm.ctlz.v4i64(<4 x i64> %{{.*}}, i1 false)
178 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
179 return _mm256_maskz_lzcnt_epi64(__U, __A);