14967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar// RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512pf -emit-llvm -o - -Werror | FileCheck %s
24967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
34967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar// Don't include mm_malloc.h, it's system specific.
44967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#define __MM_MALLOC_H
54967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
64967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar#include <immintrin.h>
74967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
84967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_mask_prefetch_i32gather_pd(__m256i index, __mmask8 mask, void const *addr, int hint) {
94967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_mask_prefetch_i32gather_pd
104967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.gatherpf.dpd
114967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_mask_prefetch_i32gather_pd(index, mask, addr, 2, 1);
124967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
134967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
144967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_prefetch_i32gather_pd(__m256i index, void const *addr, int hint) {
154967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_prefetch_i32gather_pd
164967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.gatherpf.dpd
174967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_prefetch_i32gather_pd(index, addr, 2, 1);
184967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
194967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
204967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_mask_prefetch_i32gather_ps(__m512i index, __mmask16 mask, void const *addr, int hint) {
214967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_mask_prefetch_i32gather_ps
224967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.gatherpf.dps
234967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_mask_prefetch_i32gather_ps(index, mask, addr, 2, 1);
244967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
254967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
264967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_prefetch_i32gather_ps(__m512i index,  void const *addr, int hint) {
274967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_prefetch_i32gather_ps
284967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.gatherpf.dps
294967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_prefetch_i32gather_ps(index, addr, 2, 1);
304967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
314967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
324967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_mask_prefetch_i64gather_pd(__m512i index, __mmask8 mask, void const *addr, int hint) {
334967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_mask_prefetch_i64gather_pd
344967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.gatherpf.qpd
354967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_mask_prefetch_i64gather_pd(index, mask, addr, 2, 1);
364967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
374967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
384967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_prefetch_i64gather_pd(__m512i index, void const *addr, int hint) {
394967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_prefetch_i64gather_pd
404967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.gatherpf.qpd
414967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_prefetch_i64gather_pd(index, addr, 2, 1);
424967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
434967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
444967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_mask_prefetch_i64gather_ps(__m512i index, __mmask8 mask, void const *addr, int hint) {
454967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_mask_prefetch_i64gather_ps
464967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.gatherpf.qps
474967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_mask_prefetch_i64gather_ps(index, mask, addr, 2, 1);
484967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
494967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
504967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_prefetch_i64gather_ps(__m512i index, void const *addr, int hint) {
514967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_prefetch_i64gather_ps
524967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.gatherpf.qps
534967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_prefetch_i64gather_ps(index, addr, 2, 1);
544967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
554967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
564967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_prefetch_i32scatter_pd(void *addr, __m256i index) {
574967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_prefetch_i32scatter_pd
584967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.scatterpf.dpd.512
594967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_prefetch_i32scatter_pd(addr, index, 1, 2);
604967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
614967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
624967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_mask_prefetch_i32scatter_pd(void *addr, __mmask8 mask, __m256i index) {
634967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_mask_prefetch_i32scatter_pd
644967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.scatterpf.dpd.512
654967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_mask_prefetch_i32scatter_pd(addr, mask, index, 1, 2);
664967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
674967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
684967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_prefetch_i32scatter_ps(void *addr, __m512i index) {
694967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_prefetch_i32scatter_ps
704967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.scatterpf.dps.512
714967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_prefetch_i32scatter_ps(addr, index, 1, 2);
724967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
734967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
744967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_mask_prefetch_i32scatter_ps(void *addr, __mmask16 mask, __m512i index) {
754967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_mask_prefetch_i32scatter_ps
764967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.scatterpf.dps.512
774967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_mask_prefetch_i32scatter_ps(addr, mask, index, 1, 2);
784967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
794967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
804967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_prefetch_i64scatter_pd(void *addr, __m512i index) {
814967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_prefetch_i64scatter_pd
824967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.scatterpf.qpd.512
834967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_prefetch_i64scatter_pd(addr, index, 1, 2);
844967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
854967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
864967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_mask_prefetch_i64scatter_pd(void *addr, __mmask16 mask, __m512i index) {
874967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_mask_prefetch_i64scatter_pd
884967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.scatterpf.qpd.512
894967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_mask_prefetch_i64scatter_pd(addr, mask, index, 1, 2);
904967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
914967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
924967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_prefetch_i64scatter_ps(void *addr, __m512i index) {
934967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_prefetch_i64scatter_ps
944967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.scatterpf.qps.512
954967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_prefetch_i64scatter_ps(addr, index, 1, 2);
964967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
974967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar
984967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainarvoid test_mm512_mask_prefetch_i64scatter_ps(void *addr, __mmask16 mask, __m512i index) {
994967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK-LABEL: @test_mm512_mask_prefetch_i64scatter_ps
1004967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  // CHECK: @llvm.x86.avx512.scatterpf.qps.512
1014967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar  return _mm512_mask_prefetch_i64scatter_ps(addr, mask, index, 1, 2);
1024967a710c84587c654b56c828382219c3937dacbPirama Arumuga Nainar}
103