1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512cd -emit-llvm -o - -Werror | FileCheck %s
2
3 // Don't include mm_malloc.h, it's system specific.
4 #define __MM_MALLOC_H
5
6 #include <immintrin.h>
7
test_mm512_conflict_epi64(__m512i __A)8 __m512i test_mm512_conflict_epi64(__m512i __A) {
9 // CHECK-LABEL: @test_mm512_conflict_epi64
10 // CHECK: @llvm.x86.avx512.mask.conflict.q.512
11 return _mm512_conflict_epi64(__A);
12 }
test_mm512_mask_conflict_epi64(__m512i __W,__mmask8 __U,__m512i __A)13 __m512i test_mm512_mask_conflict_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
14 // CHECK-LABEL: @test_mm512_mask_conflict_epi64
15 // CHECK: @llvm.x86.avx512.mask.conflict.q.512
16 return _mm512_mask_conflict_epi64(__W,__U,__A);
17 }
test_mm512_maskz_conflict_epi64(__mmask8 __U,__m512i __A)18 __m512i test_mm512_maskz_conflict_epi64(__mmask8 __U, __m512i __A) {
19 // CHECK-LABEL: @test_mm512_maskz_conflict_epi64
20 // CHECK: @llvm.x86.avx512.mask.conflict.q.512
21 return _mm512_maskz_conflict_epi64(__U,__A);
22 }
test_mm512_conflict_epi32(__m512i __A)23 __m512i test_mm512_conflict_epi32(__m512i __A) {
24 // CHECK-LABEL: @test_mm512_conflict_epi32
25 // CHECK: @llvm.x86.avx512.mask.conflict.d.512
26 return _mm512_conflict_epi32(__A);
27 }
test_mm512_mask_conflict_epi32(__m512i __W,__mmask16 __U,__m512i __A)28 __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.mask.conflict.d.512
31 return _mm512_mask_conflict_epi32(__W,__U,__A);
32 }
test_mm512_maskz_conflict_epi32(__mmask16 __U,__m512i __A)33 __m512i test_mm512_maskz_conflict_epi32(__mmask16 __U, __m512i __A) {
34 // CHECK-LABEL: @test_mm512_maskz_conflict_epi32
35 // CHECK: @llvm.x86.avx512.mask.conflict.d.512
36 return _mm512_maskz_conflict_epi32(__U,__A);
37 }
test_mm512_lzcnt_epi32(__m512i __A)38 __m512i test_mm512_lzcnt_epi32(__m512i __A) {
39 // CHECK-LABEL: @test_mm512_lzcnt_epi32
40 // CHECK: call <16 x i32> @llvm.ctlz.v16i32(<16 x i32> %{{.*}}, i1 false)
41 return _mm512_lzcnt_epi32(__A);
42 }
test_mm512_mask_lzcnt_epi32(__m512i __W,__mmask16 __U,__m512i __A)43 __m512i test_mm512_mask_lzcnt_epi32(__m512i __W, __mmask16 __U, __m512i __A) {
44 // CHECK-LABEL: @test_mm512_mask_lzcnt_epi32
45 // CHECK: call <16 x i32> @llvm.ctlz.v16i32(<16 x i32> %{{.*}}, i1 false)
46 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
47 return _mm512_mask_lzcnt_epi32(__W,__U,__A);
48 }
test_mm512_maskz_lzcnt_epi32(__mmask16 __U,__m512i __A)49 __m512i test_mm512_maskz_lzcnt_epi32(__mmask16 __U, __m512i __A) {
50 // CHECK-LABEL: @test_mm512_maskz_lzcnt_epi32
51 // CHECK: call <16 x i32> @llvm.ctlz.v16i32(<16 x i32> %{{.*}}, i1 false)
52 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
53 return _mm512_maskz_lzcnt_epi32(__U,__A);
54 }
test_mm512_lzcnt_epi64(__m512i __A)55 __m512i test_mm512_lzcnt_epi64(__m512i __A) {
56 // CHECK-LABEL: @test_mm512_lzcnt_epi64
57 // CHECK: call <8 x i64> @llvm.ctlz.v8i64(<8 x i64> %{{.*}}, i1 false)
58 return _mm512_lzcnt_epi64(__A);
59 }
test_mm512_mask_lzcnt_epi64(__m512i __W,__mmask8 __U,__m512i __A)60 __m512i test_mm512_mask_lzcnt_epi64(__m512i __W, __mmask8 __U, __m512i __A) {
61 // CHECK-LABEL: @test_mm512_mask_lzcnt_epi64
62 // CHECK: call <8 x i64> @llvm.ctlz.v8i64(<8 x i64> %{{.*}}, i1 false)
63 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
64 return _mm512_mask_lzcnt_epi64(__W,__U,__A);
65 }
test_mm512_maskz_lzcnt_epi64(__mmask8 __U,__m512i __A)66 __m512i test_mm512_maskz_lzcnt_epi64(__mmask8 __U, __m512i __A) {
67 // CHECK-LABEL: @test_mm512_maskz_lzcnt_epi64
68 // CHECK: call <8 x i64> @llvm.ctlz.v8i64(<8 x i64> %{{.*}}, i1 false)
69 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
70 return _mm512_maskz_lzcnt_epi64(__U,__A);
71 }
72
test_mm512_broadcastmb_epi64(__mmask8 __A)73 __m512i test_mm512_broadcastmb_epi64(__mmask8 __A) {
74 // CHECK-LABEL: @test_mm512_broadcastmb_epi64
75 // CHECK: @llvm.x86.avx512.broadcastmb.512
76 return _mm512_broadcastmb_epi64(__A);
77 }
78
test_mm512_broadcastmw_epi32(__mmask16 __A)79 __m512i test_mm512_broadcastmw_epi32(__mmask16 __A) {
80 // CHECK-LABEL: @test_mm512_broadcastmw_epi32
81 // CHECK: @llvm.x86.avx512.broadcastmw.512
82 return _mm512_broadcastmw_epi32(__A);
83 }
84