blob: b35d90ca6309689b48075036d7bbc505e0fa0306 [file] [log] [blame]
Elad Cohenb107a222016-09-28 11:59:09 +00001// RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-apple-darwin -target-feature +avx512pf -emit-llvm -o - -Wall -Werror | FileCheck %s
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00002
Michael Zuckerman4fa96af2016-04-21 12:47:27 +00003
4#include <immintrin.h>
5
6void test_mm512_mask_prefetch_i32gather_pd(__m256i index, __mmask8 mask, void const *addr, int hint) {
7 // CHECK-LABEL: @test_mm512_mask_prefetch_i32gather_pd
8 // CHECK: @llvm.x86.avx512.gatherpf.dpd
Craig Topperf771f79b2017-03-31 17:22:30 +00009 return _mm512_mask_prefetch_i32gather_pd(index, mask, addr, 2, _MM_HINT_T0);
Michael Zuckerman4fa96af2016-04-21 12:47:27 +000010}
11
Michael Zuckermanc49f6ce2016-06-14 13:45:17 +000012void test_mm512_prefetch_i32gather_pd(__m256i index, void const *addr, int hint) {
13 // CHECK-LABEL: @test_mm512_prefetch_i32gather_pd
14 // CHECK: @llvm.x86.avx512.gatherpf.dpd
Craig Topperf771f79b2017-03-31 17:22:30 +000015 return _mm512_prefetch_i32gather_pd(index, addr, 2, _MM_HINT_T0);
Michael Zuckermanc49f6ce2016-06-14 13:45:17 +000016}
17
Michael Zuckerman4fa96af2016-04-21 12:47:27 +000018void test_mm512_mask_prefetch_i32gather_ps(__m512i index, __mmask16 mask, void const *addr, int hint) {
19 // CHECK-LABEL: @test_mm512_mask_prefetch_i32gather_ps
20 // CHECK: @llvm.x86.avx512.gatherpf.dps
Craig Topperf771f79b2017-03-31 17:22:30 +000021 return _mm512_mask_prefetch_i32gather_ps(index, mask, addr, 2, _MM_HINT_T0);
Michael Zuckerman4fa96af2016-04-21 12:47:27 +000022}
23
Michael Zuckermanc49f6ce2016-06-14 13:45:17 +000024void test_mm512_prefetch_i32gather_ps(__m512i index, void const *addr, int hint) {
25 // CHECK-LABEL: @test_mm512_prefetch_i32gather_ps
26 // CHECK: @llvm.x86.avx512.gatherpf.dps
Craig Topperf771f79b2017-03-31 17:22:30 +000027 return _mm512_prefetch_i32gather_ps(index, addr, 2, _MM_HINT_T0);
Michael Zuckermanc49f6ce2016-06-14 13:45:17 +000028}
29
Michael Zuckerman4fa96af2016-04-21 12:47:27 +000030void test_mm512_mask_prefetch_i64gather_pd(__m512i index, __mmask8 mask, void const *addr, int hint) {
31 // CHECK-LABEL: @test_mm512_mask_prefetch_i64gather_pd
32 // CHECK: @llvm.x86.avx512.gatherpf.qpd
Craig Topperf771f79b2017-03-31 17:22:30 +000033 return _mm512_mask_prefetch_i64gather_pd(index, mask, addr, 2, _MM_HINT_T0);
Michael Zuckerman4fa96af2016-04-21 12:47:27 +000034}
35
Michael Zuckermanc49f6ce2016-06-14 13:45:17 +000036void test_mm512_prefetch_i64gather_pd(__m512i index, void const *addr, int hint) {
37 // CHECK-LABEL: @test_mm512_prefetch_i64gather_pd
38 // CHECK: @llvm.x86.avx512.gatherpf.qpd
Craig Topperf771f79b2017-03-31 17:22:30 +000039 return _mm512_prefetch_i64gather_pd(index, addr, 2, _MM_HINT_T0);
Michael Zuckermanc49f6ce2016-06-14 13:45:17 +000040}
41
Michael Zuckerman4fa96af2016-04-21 12:47:27 +000042void test_mm512_mask_prefetch_i64gather_ps(__m512i index, __mmask8 mask, void const *addr, int hint) {
43 // CHECK-LABEL: @test_mm512_mask_prefetch_i64gather_ps
44 // CHECK: @llvm.x86.avx512.gatherpf.qps
Craig Topperf771f79b2017-03-31 17:22:30 +000045 return _mm512_mask_prefetch_i64gather_ps(index, mask, addr, 2, _MM_HINT_T0);
Michael Zuckerman4fa96af2016-04-21 12:47:27 +000046}
Michael Zuckermanfcf32c22016-04-25 13:01:40 +000047
Michael Zuckermanc49f6ce2016-06-14 13:45:17 +000048void test_mm512_prefetch_i64gather_ps(__m512i index, void const *addr, int hint) {
49 // CHECK-LABEL: @test_mm512_prefetch_i64gather_ps
50 // CHECK: @llvm.x86.avx512.gatherpf.qps
Craig Topperf771f79b2017-03-31 17:22:30 +000051 return _mm512_prefetch_i64gather_ps(index, addr, 2, _MM_HINT_T0);
Michael Zuckermanc49f6ce2016-06-14 13:45:17 +000052}
53
Michael Zuckermanfcf32c22016-04-25 13:01:40 +000054void test_mm512_prefetch_i32scatter_pd(void *addr, __m256i index) {
55 // CHECK-LABEL: @test_mm512_prefetch_i32scatter_pd
56 // CHECK: @llvm.x86.avx512.scatterpf.dpd.512
Craig Topperf771f79b2017-03-31 17:22:30 +000057 return _mm512_prefetch_i32scatter_pd(addr, index, 1, _MM_HINT_T1);
Michael Zuckermanfcf32c22016-04-25 13:01:40 +000058}
59
60void test_mm512_mask_prefetch_i32scatter_pd(void *addr, __mmask8 mask, __m256i index) {
61 // CHECK-LABEL: @test_mm512_mask_prefetch_i32scatter_pd
62 // CHECK: @llvm.x86.avx512.scatterpf.dpd.512
Craig Topperf771f79b2017-03-31 17:22:30 +000063 return _mm512_mask_prefetch_i32scatter_pd(addr, mask, index, 1, _MM_HINT_T1);
Michael Zuckermanfcf32c22016-04-25 13:01:40 +000064}
65
66void test_mm512_prefetch_i32scatter_ps(void *addr, __m512i index) {
67 // CHECK-LABEL: @test_mm512_prefetch_i32scatter_ps
68 // CHECK: @llvm.x86.avx512.scatterpf.dps.512
Craig Topperf771f79b2017-03-31 17:22:30 +000069 return _mm512_prefetch_i32scatter_ps(addr, index, 1, _MM_HINT_T1);
Michael Zuckermanfcf32c22016-04-25 13:01:40 +000070}
71
72void test_mm512_mask_prefetch_i32scatter_ps(void *addr, __mmask16 mask, __m512i index) {
73 // CHECK-LABEL: @test_mm512_mask_prefetch_i32scatter_ps
74 // CHECK: @llvm.x86.avx512.scatterpf.dps.512
Craig Topperf771f79b2017-03-31 17:22:30 +000075 return _mm512_mask_prefetch_i32scatter_ps(addr, mask, index, 1, _MM_HINT_T1);
Michael Zuckermanfcf32c22016-04-25 13:01:40 +000076}
77
78void test_mm512_prefetch_i64scatter_pd(void *addr, __m512i index) {
79 // CHECK-LABEL: @test_mm512_prefetch_i64scatter_pd
80 // CHECK: @llvm.x86.avx512.scatterpf.qpd.512
Craig Topperf771f79b2017-03-31 17:22:30 +000081 return _mm512_prefetch_i64scatter_pd(addr, index, 1, _MM_HINT_T1);
Michael Zuckermanfcf32c22016-04-25 13:01:40 +000082}
83
84void test_mm512_mask_prefetch_i64scatter_pd(void *addr, __mmask16 mask, __m512i index) {
85 // CHECK-LABEL: @test_mm512_mask_prefetch_i64scatter_pd
86 // CHECK: @llvm.x86.avx512.scatterpf.qpd.512
Craig Topperf771f79b2017-03-31 17:22:30 +000087 return _mm512_mask_prefetch_i64scatter_pd(addr, mask, index, 1, _MM_HINT_T1);
Michael Zuckermanfcf32c22016-04-25 13:01:40 +000088}
89
90void test_mm512_prefetch_i64scatter_ps(void *addr, __m512i index) {
91 // CHECK-LABEL: @test_mm512_prefetch_i64scatter_ps
92 // CHECK: @llvm.x86.avx512.scatterpf.qps.512
Craig Topperf771f79b2017-03-31 17:22:30 +000093 return _mm512_prefetch_i64scatter_ps(addr, index, 1, _MM_HINT_T1);
Michael Zuckermanfcf32c22016-04-25 13:01:40 +000094}
95
96void test_mm512_mask_prefetch_i64scatter_ps(void *addr, __mmask16 mask, __m512i index) {
97 // CHECK-LABEL: @test_mm512_mask_prefetch_i64scatter_ps
98 // CHECK: @llvm.x86.avx512.scatterpf.qps.512
Craig Topperf771f79b2017-03-31 17:22:30 +000099 return _mm512_mask_prefetch_i64scatter_ps(addr, mask, index, 1, _MM_HINT_T1);
Michael Zuckermanfcf32c22016-04-25 13:01:40 +0000100}