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