|
1 | | -// RUN: %clang_cc1 %s -flax-vector-conversions=none -ffreestanding -triple=x86_64-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s |
| 1 | +// RUN: %clang_cc1 -x c %s -flax-vector-conversions=none -ffreestanding -triple=x86_64-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s |
| 2 | +// RUN: %clang_cc1 -x c %s -flax-vector-conversions=none -ffreestanding -triple=i386-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s |
| 3 | +// RUN: %clang_cc1 -x c++ %s -flax-vector-conversions=none -ffreestanding -triple=x86_64-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s |
| 4 | +// RUN: %clang_cc1 -x c++ %s -flax-vector-conversions=none -ffreestanding -triple=i386-apple-darwin -target-feature +avx512ifma -target-feature +avx512vl -emit-llvm -o - -Wall -Werror | FileCheck %s |
2 | 5 |
|
3 | 6 | #include <immintrin.h> |
4 | 7 |
|
5 | 8 | __m128i test_mm_madd52hi_epu64(__m128i __X, __m128i __Y, __m128i __Z) { |
6 | | - // CHECK-LABEL: @test_mm_madd52hi_epu64 |
7 | | - // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128 |
| 9 | + // CHECK-LABEL: test_mm_madd52hi_epu64 |
| 10 | + // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}) |
8 | 11 | return _mm_madd52hi_epu64(__X, __Y, __Z); |
9 | 12 | } |
10 | 13 |
|
11 | 14 | __m128i test_mm_mask_madd52hi_epu64(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { |
12 | | - // CHECK-LABEL: @test_mm_mask_madd52hi_epu64 |
13 | | - // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128 |
| 15 | + // CHECK-LABEL: test_mm_mask_madd52hi_epu64 |
| 16 | + // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}) |
14 | 17 | // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} |
15 | 18 | return _mm_mask_madd52hi_epu64(__W, __M, __X, __Y); |
16 | 19 | } |
17 | 20 |
|
18 | 21 | __m128i test_mm_maskz_madd52hi_epu64(__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) { |
19 | | - // CHECK-LABEL: @test_mm_maskz_madd52hi_epu64 |
20 | | - // CHECK: @llvm.x86.avx512.vpmadd52h.uq.128 |
| 22 | + // CHECK-LABEL: test_mm_maskz_madd52hi_epu64 |
| 23 | + // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52h.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}) |
21 | 24 | // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} |
22 | 25 | return _mm_maskz_madd52hi_epu64(__M, __X, __Y, __Z); |
23 | 26 | } |
24 | 27 |
|
25 | 28 | __m256i test_mm256_madd52hi_epu64(__m256i __X, __m256i __Y, __m256i __Z) { |
26 | | - // CHECK-LABEL: @test_mm256_madd52hi_epu64 |
27 | | - // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256 |
| 29 | + // CHECK-LABEL: test_mm256_madd52hi_epu64 |
| 30 | + // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}) |
28 | 31 | return _mm256_madd52hi_epu64(__X, __Y, __Z); |
29 | 32 | } |
30 | 33 |
|
31 | 34 | __m256i test_mm256_mask_madd52hi_epu64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { |
32 | | - // CHECK-LABEL: @test_mm256_mask_madd52hi_epu64 |
33 | | - // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256 |
| 35 | + // CHECK-LABEL: test_mm256_mask_madd52hi_epu64 |
| 36 | + // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}) |
34 | 37 | // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} |
35 | 38 | return _mm256_mask_madd52hi_epu64(__W, __M, __X, __Y); |
36 | 39 | } |
37 | 40 |
|
38 | 41 | __m256i test_mm256_maskz_madd52hi_epu64(__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) { |
39 | | - // CHECK-LABEL: @test_mm256_maskz_madd52hi_epu64 |
40 | | - // CHECK: @llvm.x86.avx512.vpmadd52h.uq.256 |
| 42 | + // CHECK-LABEL: test_mm256_maskz_madd52hi_epu64 |
| 43 | + // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52h.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}) |
41 | 44 | // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} |
42 | 45 | return _mm256_maskz_madd52hi_epu64(__M, __X, __Y, __Z); |
43 | 46 | } |
44 | 47 |
|
45 | 48 | __m128i test_mm_madd52lo_epu64(__m128i __X, __m128i __Y, __m128i __Z) { |
46 | | - // CHECK-LABEL: @test_mm_madd52lo_epu64 |
47 | | - // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128 |
| 49 | + // CHECK-LABEL: test_mm_madd52lo_epu64 |
| 50 | + // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}) |
48 | 51 | return _mm_madd52lo_epu64(__X, __Y, __Z); |
49 | 52 | } |
50 | 53 |
|
51 | 54 | __m128i test_mm_mask_madd52lo_epu64(__m128i __W, __mmask8 __M, __m128i __X, __m128i __Y) { |
52 | | - // CHECK-LABEL: @test_mm_mask_madd52lo_epu64 |
53 | | - // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128 |
| 55 | + // CHECK-LABEL: test_mm_mask_madd52lo_epu64 |
| 56 | + // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}) |
54 | 57 | // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} |
55 | 58 | return _mm_mask_madd52lo_epu64(__W, __M, __X, __Y); |
56 | 59 | } |
57 | 60 |
|
58 | 61 | __m128i test_mm_maskz_madd52lo_epu64(__mmask8 __M, __m128i __X, __m128i __Y, __m128i __Z) { |
59 | | - // CHECK-LABEL: @test_mm_maskz_madd52lo_epu64 |
60 | | - // CHECK: @llvm.x86.avx512.vpmadd52l.uq.128 |
| 62 | + // CHECK-LABEL: test_mm_maskz_madd52lo_epu64 |
| 63 | + // CHECK: call {{.*}}<2 x i64> @llvm.x86.avx512.vpmadd52l.uq.128(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}) |
61 | 64 | // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} |
62 | 65 | return _mm_maskz_madd52lo_epu64(__M, __X, __Y, __Z); |
63 | 66 | } |
64 | 67 |
|
65 | 68 | __m256i test_mm256_madd52lo_epu64(__m256i __X, __m256i __Y, __m256i __Z) { |
66 | | - // CHECK-LABEL: @test_mm256_madd52lo_epu64 |
67 | | - // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256 |
| 69 | + // CHECK-LABEL: test_mm256_madd52lo_epu64 |
| 70 | + // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}) |
68 | 71 | return _mm256_madd52lo_epu64(__X, __Y, __Z); |
69 | 72 | } |
70 | 73 |
|
71 | 74 | __m256i test_mm256_mask_madd52lo_epu64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { |
72 | | - // CHECK-LABEL: @test_mm256_mask_madd52lo_epu64 |
73 | | - // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256 |
| 75 | + // CHECK-LABEL: test_mm256_mask_madd52lo_epu64 |
| 76 | + // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}) |
74 | 77 | // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} |
75 | 78 | return _mm256_mask_madd52lo_epu64(__W, __M, __X, __Y); |
76 | 79 | } |
77 | 80 |
|
78 | 81 | __m256i test_mm256_maskz_madd52lo_epu64(__mmask8 __M, __m256i __X, __m256i __Y, __m256i __Z) { |
79 | | - // CHECK-LABEL: @test_mm256_maskz_madd52lo_epu64 |
80 | | - // CHECK: @llvm.x86.avx512.vpmadd52l.uq.256 |
| 82 | + // CHECK-LABEL: test_mm256_maskz_madd52lo_epu64 |
| 83 | + // CHECK: call {{.*}}<4 x i64> @llvm.x86.avx512.vpmadd52l.uq.256(<4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}) |
81 | 84 | // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} |
82 | 85 | return _mm256_maskz_madd52lo_epu64(__M, __X, __Y, __Z); |
83 | 86 | } |
0 commit comments