xref: /aosp_15_r20/external/clang/test/CodeGen/avx512pf-builtins.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512pf -emit-llvm -o - -Werror | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li // Don't include mm_malloc.h, it's system specific.
4*67e74705SXin Li #define __MM_MALLOC_H
5*67e74705SXin Li 
6*67e74705SXin Li #include <immintrin.h>
7*67e74705SXin Li 
test_mm512_mask_prefetch_i32gather_pd(__m256i index,__mmask8 mask,void const * addr,int hint)8*67e74705SXin Li void test_mm512_mask_prefetch_i32gather_pd(__m256i index, __mmask8 mask, void const *addr, int hint) {
9*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_prefetch_i32gather_pd
10*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gatherpf.dpd
11*67e74705SXin Li   return _mm512_mask_prefetch_i32gather_pd(index, mask, addr, 2, 1);
12*67e74705SXin Li }
13*67e74705SXin Li 
test_mm512_prefetch_i32gather_pd(__m256i index,void const * addr,int hint)14*67e74705SXin Li void test_mm512_prefetch_i32gather_pd(__m256i index, void const *addr, int hint) {
15*67e74705SXin Li   // CHECK-LABEL: @test_mm512_prefetch_i32gather_pd
16*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gatherpf.dpd
17*67e74705SXin Li   return _mm512_prefetch_i32gather_pd(index, addr, 2, 1);
18*67e74705SXin Li }
19*67e74705SXin Li 
test_mm512_mask_prefetch_i32gather_ps(__m512i index,__mmask16 mask,void const * addr,int hint)20*67e74705SXin Li void test_mm512_mask_prefetch_i32gather_ps(__m512i index, __mmask16 mask, void const *addr, int hint) {
21*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_prefetch_i32gather_ps
22*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gatherpf.dps
23*67e74705SXin Li   return _mm512_mask_prefetch_i32gather_ps(index, mask, addr, 2, 1);
24*67e74705SXin Li }
25*67e74705SXin Li 
test_mm512_prefetch_i32gather_ps(__m512i index,void const * addr,int hint)26*67e74705SXin Li void test_mm512_prefetch_i32gather_ps(__m512i index,  void const *addr, int hint) {
27*67e74705SXin Li   // CHECK-LABEL: @test_mm512_prefetch_i32gather_ps
28*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gatherpf.dps
29*67e74705SXin Li   return _mm512_prefetch_i32gather_ps(index, addr, 2, 1);
30*67e74705SXin Li }
31*67e74705SXin Li 
test_mm512_mask_prefetch_i64gather_pd(__m512i index,__mmask8 mask,void const * addr,int hint)32*67e74705SXin Li void test_mm512_mask_prefetch_i64gather_pd(__m512i index, __mmask8 mask, void const *addr, int hint) {
33*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_prefetch_i64gather_pd
34*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gatherpf.qpd
35*67e74705SXin Li   return _mm512_mask_prefetch_i64gather_pd(index, mask, addr, 2, 1);
36*67e74705SXin Li }
37*67e74705SXin Li 
test_mm512_prefetch_i64gather_pd(__m512i index,void const * addr,int hint)38*67e74705SXin Li void test_mm512_prefetch_i64gather_pd(__m512i index, void const *addr, int hint) {
39*67e74705SXin Li   // CHECK-LABEL: @test_mm512_prefetch_i64gather_pd
40*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gatherpf.qpd
41*67e74705SXin Li   return _mm512_prefetch_i64gather_pd(index, addr, 2, 1);
42*67e74705SXin Li }
43*67e74705SXin Li 
test_mm512_mask_prefetch_i64gather_ps(__m512i index,__mmask8 mask,void const * addr,int hint)44*67e74705SXin Li void test_mm512_mask_prefetch_i64gather_ps(__m512i index, __mmask8 mask, void const *addr, int hint) {
45*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_prefetch_i64gather_ps
46*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gatherpf.qps
47*67e74705SXin Li   return _mm512_mask_prefetch_i64gather_ps(index, mask, addr, 2, 1);
48*67e74705SXin Li }
49*67e74705SXin Li 
test_mm512_prefetch_i64gather_ps(__m512i index,void const * addr,int hint)50*67e74705SXin Li void test_mm512_prefetch_i64gather_ps(__m512i index, void const *addr, int hint) {
51*67e74705SXin Li   // CHECK-LABEL: @test_mm512_prefetch_i64gather_ps
52*67e74705SXin Li   // CHECK: @llvm.x86.avx512.gatherpf.qps
53*67e74705SXin Li   return _mm512_prefetch_i64gather_ps(index, addr, 2, 1);
54*67e74705SXin Li }
55*67e74705SXin Li 
test_mm512_prefetch_i32scatter_pd(void * addr,__m256i index)56*67e74705SXin Li void test_mm512_prefetch_i32scatter_pd(void *addr, __m256i index) {
57*67e74705SXin Li   // CHECK-LABEL: @test_mm512_prefetch_i32scatter_pd
58*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatterpf.dpd.512
59*67e74705SXin Li   return _mm512_prefetch_i32scatter_pd(addr, index, 1, 2);
60*67e74705SXin Li }
61*67e74705SXin Li 
test_mm512_mask_prefetch_i32scatter_pd(void * addr,__mmask8 mask,__m256i index)62*67e74705SXin Li void test_mm512_mask_prefetch_i32scatter_pd(void *addr, __mmask8 mask, __m256i index) {
63*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_prefetch_i32scatter_pd
64*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatterpf.dpd.512
65*67e74705SXin Li   return _mm512_mask_prefetch_i32scatter_pd(addr, mask, index, 1, 2);
66*67e74705SXin Li }
67*67e74705SXin Li 
test_mm512_prefetch_i32scatter_ps(void * addr,__m512i index)68*67e74705SXin Li void test_mm512_prefetch_i32scatter_ps(void *addr, __m512i index) {
69*67e74705SXin Li   // CHECK-LABEL: @test_mm512_prefetch_i32scatter_ps
70*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatterpf.dps.512
71*67e74705SXin Li   return _mm512_prefetch_i32scatter_ps(addr, index, 1, 2);
72*67e74705SXin Li }
73*67e74705SXin Li 
test_mm512_mask_prefetch_i32scatter_ps(void * addr,__mmask16 mask,__m512i index)74*67e74705SXin Li void test_mm512_mask_prefetch_i32scatter_ps(void *addr, __mmask16 mask, __m512i index) {
75*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_prefetch_i32scatter_ps
76*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatterpf.dps.512
77*67e74705SXin Li   return _mm512_mask_prefetch_i32scatter_ps(addr, mask, index, 1, 2);
78*67e74705SXin Li }
79*67e74705SXin Li 
test_mm512_prefetch_i64scatter_pd(void * addr,__m512i index)80*67e74705SXin Li void test_mm512_prefetch_i64scatter_pd(void *addr, __m512i index) {
81*67e74705SXin Li   // CHECK-LABEL: @test_mm512_prefetch_i64scatter_pd
82*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatterpf.qpd.512
83*67e74705SXin Li   return _mm512_prefetch_i64scatter_pd(addr, index, 1, 2);
84*67e74705SXin Li }
85*67e74705SXin Li 
test_mm512_mask_prefetch_i64scatter_pd(void * addr,__mmask16 mask,__m512i index)86*67e74705SXin Li void test_mm512_mask_prefetch_i64scatter_pd(void *addr, __mmask16 mask, __m512i index) {
87*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_prefetch_i64scatter_pd
88*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatterpf.qpd.512
89*67e74705SXin Li   return _mm512_mask_prefetch_i64scatter_pd(addr, mask, index, 1, 2);
90*67e74705SXin Li }
91*67e74705SXin Li 
test_mm512_prefetch_i64scatter_ps(void * addr,__m512i index)92*67e74705SXin Li void test_mm512_prefetch_i64scatter_ps(void *addr, __m512i index) {
93*67e74705SXin Li   // CHECK-LABEL: @test_mm512_prefetch_i64scatter_ps
94*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatterpf.qps.512
95*67e74705SXin Li   return _mm512_prefetch_i64scatter_ps(addr, index, 1, 2);
96*67e74705SXin Li }
97*67e74705SXin Li 
test_mm512_mask_prefetch_i64scatter_ps(void * addr,__mmask16 mask,__m512i index)98*67e74705SXin Li void test_mm512_mask_prefetch_i64scatter_ps(void *addr, __mmask16 mask, __m512i index) {
99*67e74705SXin Li   // CHECK-LABEL: @test_mm512_mask_prefetch_i64scatter_ps
100*67e74705SXin Li   // CHECK: @llvm.x86.avx512.scatterpf.qps.512
101*67e74705SXin Li   return _mm512_mask_prefetch_i64scatter_ps(addr, mask, index, 1, 2);
102*67e74705SXin Li }
103