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
5 __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
8 return _mm_madd52hi_epu64(__X
, __Y
, __Z
);
11 __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
14 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
15 return _mm_mask_madd52hi_epu64(__W
, __M
, __X
, __Y
);
18 __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
21 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
22 return _mm_maskz_madd52hi_epu64(__M
, __X
, __Y
, __Z
);
25 __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
28 return _mm256_madd52hi_epu64(__X
, __Y
, __Z
);
31 __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
34 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
35 return _mm256_mask_madd52hi_epu64(__W
, __M
, __X
, __Y
);
38 __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
41 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
42 return _mm256_maskz_madd52hi_epu64(__M
, __X
, __Y
, __Z
);
45 __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
48 return _mm_madd52lo_epu64(__X
, __Y
, __Z
);
51 __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
54 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
55 return _mm_mask_madd52lo_epu64(__W
, __M
, __X
, __Y
);
58 __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
61 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
62 return _mm_maskz_madd52lo_epu64(__M
, __X
, __Y
, __Z
);
65 __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
68 return _mm256_madd52lo_epu64(__X
, __Y
, __Z
);
71 __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
74 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
75 return _mm256_mask_madd52lo_epu64(__W
, __M
, __X
, __Y
);
78 __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
81 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
82 return _mm256_maskz_madd52lo_epu64(__M
, __X
, __Y
, __Z
);