1 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-- -target-feature +movrs -target-feature +avx10.2-512 -emit-llvm -o - -Wall -Werror | FileCheck %s
5 __m512i
test_mm512_loadrs_epi8(const __m512i
* __A
) {
6 // CHECK-LABEL: @test_mm512_loadrs_epi8(
7 // CHECK: call <64 x i8> @llvm.x86.avx10.vmovrsb512(
8 return _mm512_loadrs_epi8(__A
);
11 __m512i
test_mm512_mask_loadrs_epi8(__m512i __A
, __mmask64 __B
, const __m512i
* __C
) {
12 // CHECK-LABEL: @test_mm512_mask_loadrs_epi8(
13 // CHECK: call <64 x i8> @llvm.x86.avx10.vmovrsb512(
14 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
15 return _mm512_mask_loadrs_epi8(__A
, __B
, __C
);
18 __m512i
test_mm512_maskz_loadrs_epi8(__mmask64 __A
, const __m512i
* __B
) {
19 // CHECK-LABEL: @test_mm512_maskz_loadrs_epi8(
20 // CHECK: call <64 x i8> @llvm.x86.avx10.vmovrsb512(
21 // CHECK: store <8 x i64> zeroinitializer
22 // CHECK: select <64 x i1> %{{.*}}, <64 x i8> %{{.*}}, <64 x i8> %{{.*}}
23 return _mm512_maskz_loadrs_epi8(__A
, __B
);
26 __m512i
test_mm512_loadrs_epi32(const __m512i
* __A
) {
27 // CHECK-LABEL: @test_mm512_loadrs_epi32(
28 // CHECK: call <16 x i32> @llvm.x86.avx10.vmovrsd512(
29 return _mm512_loadrs_epi32(__A
);
32 __m512i
test_mm512_mask_loadrs_epi32(__m512i __A
, __mmask16 __B
, const __m512i
* __C
) {
33 // CHECK-LABEL: @test_mm512_mask_loadrs_epi32(
34 // CHECK: call <16 x i32> @llvm.x86.avx10.vmovrsd512(
35 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
36 return _mm512_mask_loadrs_epi32(__A
, __B
, __C
);
39 __m512i
test_mm512_maskz_loadrs_epi32(__mmask16 __A
, const __m512i
* __B
) {
40 // CHECK-LABEL: @test_mm512_maskz_loadrs_epi32(
41 // CHECK: call <16 x i32> @llvm.x86.avx10.vmovrsd512(
42 // CHECK: store <8 x i64> zeroinitializer
43 // CHECK: select <16 x i1> %{{.*}}, <16 x i32> %{{.*}}, <16 x i32> %{{.*}}
44 return _mm512_maskz_loadrs_epi32(__A
, __B
);
47 __m512i
test_mm512_loadrs_epi64(const __m512i
* __A
) {
48 // CHECK-LABEL: @test_mm512_loadrs_epi64(
49 // CHECK: call <8 x i64> @llvm.x86.avx10.vmovrsq512(
50 return _mm512_loadrs_epi64(__A
);
53 __m512i
test_mm512_mask_loadrs_epi64(__m512i __A
, __mmask8 __B
, const __m512i
* __C
) {
54 // CHECK-LABEL: @test_mm512_mask_loadrs_epi64(
55 // CHECK: call <8 x i64> @llvm.x86.avx10.vmovrsq512(
56 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
57 return _mm512_mask_loadrs_epi64(__A
, __B
, __C
);
60 __m512i
test_mm512_maskz_loadrs_epi64(__mmask8 __A
, const __m512i
* __B
) {
61 // CHECK-LABEL: @test_mm512_maskz_loadrs_epi64(
62 // CHECK: call <8 x i64> @llvm.x86.avx10.vmovrsq512(
63 // CHECK: store <8 x i64> zeroinitializer
64 // CHECK: select <8 x i1> %{{.*}}, <8 x i64> %{{.*}}, <8 x i64> %{{.*}}
65 return _mm512_maskz_loadrs_epi64(__A
, __B
);
68 __m512i
test_mm512_loadrs_epi16(const __m512i
* __A
) {
69 // CHECK-LABEL: @test_mm512_loadrs_epi16(
70 // CHECK: call <32 x i16> @llvm.x86.avx10.vmovrsw512(
71 return _mm512_loadrs_epi16(__A
);
74 __m512i
test_mm512_mask_loadrs_epi16(__m512i __A
, __mmask32 __B
, const __m512i
* __C
) {
75 // CHECK-LABEL: @test_mm512_mask_loadrs_epi16(
76 // CHECK: call <32 x i16> @llvm.x86.avx10.vmovrsw512(
77 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
78 return _mm512_mask_loadrs_epi16(__A
, __B
, __C
);
81 __m512i
test_mm512_maskz_loadrs_epi16(__mmask32 __A
, const __m512i
* __B
) {
82 // CHECK-LABEL: @test_mm512_maskz_loadrs_epi16(
83 // CHECK: call <32 x i16> @llvm.x86.avx10.vmovrsw512(
84 // CHECK: store <8 x i64> zeroinitializer
85 // CHECK: select <32 x i1> %{{.*}}, <32 x i16> %{{.*}}, <32 x i16> %{{.*}}
86 return _mm512_maskz_loadrs_epi16(__A
, __B
);