[MLIR][TOSA] Update CustomOp input and output names (#118408)
[llvm-project.git] / clang / test / CodeGen / X86 / movrs-avx10.2-builtins.c
blob2011b2a8624738064648680a891a7cc251f37673
1 // RUN: %clang_cc1 -ffreestanding %s -triple=x86_64-- -target-feature +movrs -target-feature +avx10.2-256 -emit-llvm -o - -Wall -Werror | FileCheck %s
3 #include <immintrin.h>
5 __m128i test_mm_loadrs_epi8(const __m128i * __A) {
6 // CHECK-LABEL: @test_mm_loadrs_epi8(
7 // CHECK: call <16 x i8> @llvm.x86.avx10.vmovrsb128(
8 return _mm_loadrs_epi8(__A);
11 __m128i test_mm_mask_loadrs_epi8(__m128i __A, __mmask16 __B, const __m128i * __C) {
12 // CHECK-LABEL: @test_mm_mask_loadrs_epi8(
13 // CHECK: call <16 x i8> @llvm.x86.avx10.vmovrsb128(
14 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
15 return _mm_mask_loadrs_epi8(__A, __B, __C);
18 __m128i test_mm_maskz_loadrs_epi8(__mmask16 __A, const __m128i * __B) {
19 // CHECK-LABEL: @test_mm_maskz_loadrs_epi8(
20 // CHECK: call <16 x i8> @llvm.x86.avx10.vmovrsb128(
21 // CHECK: store <2 x i64> zeroinitializer
22 // CHECK: select <16 x i1> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}
23 return _mm_maskz_loadrs_epi8(__A, __B);
26 __m256i test_mm256_loadrs_epi8(const __m256i * __A) {
27 // CHECK-LABEL: @test_mm256_loadrs_epi8(
28 // CHECK: call <32 x i8> @llvm.x86.avx10.vmovrsb256(
29 return _mm256_loadrs_epi8(__A);
32 __m256i test_mm256_mask_loadrs_epi8(__m256i __A, __mmask32 __B, const __m256i * __C) {
33 // CHECK-LABEL: @test_mm256_mask_loadrs_epi8(
34 // CHECK: call <32 x i8> @llvm.x86.avx10.vmovrsb256(
35 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
36 return _mm256_mask_loadrs_epi8(__A, __B, __C);
39 __m256i test_mm256_maskz_loadrs_epi8(__mmask32 __A, const __m256i * __B) {
40 // CHECK-LABEL: @test_mm256_maskz_loadrs_epi8(
41 // CHECK: call <32 x i8> @llvm.x86.avx10.vmovrsb256(
42 // CHECK: store <4 x i64> zeroinitializer
43 // CHECK: select <32 x i1> %{{.*}}, <32 x i8> %{{.*}}, <32 x i8> %{{.*}}
44 return _mm256_maskz_loadrs_epi8(__A, __B);
47 __m128i test_mm_loadrs_epi32(const __m128i * __A) {
48 // CHECK-LABEL: @test_mm_loadrs_epi32(
49 // CHECK: call <4 x i32> @llvm.x86.avx10.vmovrsd128(
50 return _mm_loadrs_epi32(__A);
53 __m128i test_mm_mask_loadrs_epi32(__m128i __A, __mmask8 __B, const __m128i * __C) {
54 // CHECK-LABEL: @test_mm_mask_loadrs_epi32(
55 // CHECK: call <4 x i32> @llvm.x86.avx10.vmovrsd128(
56 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
57 return _mm_mask_loadrs_epi32(__A, __B, __C);
60 __m128i test_mm_maskz_loadrs_epi32(__mmask8 __A, const __m128i * __B) {
61 // CHECK-LABEL: @test_mm_maskz_loadrs_epi32(
62 // CHECK: call <4 x i32> @llvm.x86.avx10.vmovrsd128(
63 // CHECK: store <2 x i64> zeroinitializer
64 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}}
65 return _mm_maskz_loadrs_epi32(__A, __B);
68 __m256i test_mm256_loadrs_epi32(const __m256i * __A) {
69 // CHECK-LABEL: @test_mm256_loadrs_epi32(
70 // CHECK: call <8 x i32> @llvm.x86.avx10.vmovrsd256(
71 return _mm256_loadrs_epi32(__A);
74 __m256i test_mm256_mask_loadrs_epi32(__m256i __A, __mmask8 __B, const __m256i * __C) {
75 // CHECK-LABEL: @test_mm256_mask_loadrs_epi32(
76 // CHECK: call <8 x i32> @llvm.x86.avx10.vmovrsd256(
77 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
78 return _mm256_mask_loadrs_epi32(__A, __B, __C);
81 __m256i test_mm256_maskz_loadrs_epi32(__mmask8 __A, const __m256i * __B) {
82 // CHECK-LABEL: @test_mm256_maskz_loadrs_epi32(
83 // CHECK: call <8 x i32> @llvm.x86.avx10.vmovrsd256(
84 // CHECK: store <4 x i64> zeroinitializer
85 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}}
86 return _mm256_maskz_loadrs_epi32(__A, __B);
89 __m128i test_mm_loadrs_epi64(const __m128i * __A) {
90 // CHECK-LABEL: @test_mm_loadrs_epi64(
91 // CHECK: call <2 x i64> @llvm.x86.avx10.vmovrsq128(
92 return _mm_loadrs_epi64(__A);
95 __m128i test_mm_mask_loadrs_epi64(__m128i __A, __mmask8 __B, const __m128i * __C) {
96 // CHECK-LABEL: @test_mm_mask_loadrs_epi64(
97 // CHECK: call <2 x i64> @llvm.x86.avx10.vmovrsq128(
98 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
99 return _mm_mask_loadrs_epi64(__A, __B, __C);
102 __m128i test_mm_maskz_loadrs_epi64(__mmask8 __A, const __m128i * __B) {
103 // CHECK-LABEL: @test_mm_maskz_loadrs_epi64(
104 // CHECK: call <2 x i64> @llvm.x86.avx10.vmovrsq128(
105 // CHECK: store <2 x i64> zeroinitializer
106 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}}
107 return _mm_maskz_loadrs_epi64(__A, __B);
110 __m256i test_mm256_loadrs_epi64(const __m256i * __A) {
111 // CHECK-LABEL: @test_mm256_loadrs_epi64(
112 // CHECK: call <4 x i64> @llvm.x86.avx10.vmovrsq256(
113 return _mm256_loadrs_epi64(__A);
116 __m256i test_mm256_mask_loadrs_epi64(__m256i __A, __mmask8 __B, const __m256i * __C) {
117 // CHECK-LABEL: @test_mm256_mask_loadrs_epi64(
118 // CHECK: call <4 x i64> @llvm.x86.avx10.vmovrsq256(
119 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
120 return _mm256_mask_loadrs_epi64(__A, __B, __C);
123 __m256i test_mm256_maskz_loadrs_epi64(__mmask8 __A, const __m256i * __B) {
124 // CHECK-LABEL: @test_mm256_maskz_loadrs_epi64(
125 // CHECK: call <4 x i64> @llvm.x86.avx10.vmovrsq256(
126 // CHECK: store <4 x i64> zeroinitializer
127 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}}
128 return _mm256_maskz_loadrs_epi64(__A, __B);
131 __m128i test_mm_loadrs_epi16(const __m128i * __A) {
132 // CHECK-LABEL: @test_mm_loadrs_epi16(
133 // CHECK: call <8 x i16> @llvm.x86.avx10.vmovrsw128(
134 return _mm_loadrs_epi16(__A);
137 __m128i test_mm_mask_loadrs_epi16(__m128i __A, __mmask8 __B, const __m128i * __C) {
138 // CHECK-LABEL: @test_mm_mask_loadrs_epi16(
139 // CHECK: call <8 x i16> @llvm.x86.avx10.vmovrsw128(
140 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
141 return _mm_mask_loadrs_epi16(__A, __B, __C);
144 __m128i test_mm_maskz_loadrs_epi16(__mmask8 __A, const __m128i * __B) {
145 // CHECK-LABEL: @test_mm_maskz_loadrs_epi16(
146 // CHECK: call <8 x i16> @llvm.x86.avx10.vmovrsw128(
147 // CHECK: store <2 x i64> zeroinitializer
148 // CHECK: select <8 x i1> %{{.*}}, <8 x i16> %{{.*}}, <8 x i16> %{{.*}}
149 return _mm_maskz_loadrs_epi16(__A, __B);
152 __m256i test_mm256_loadrs_epi16(const __m256i * __A) {
153 // CHECK-LABEL: @test_mm256_loadrs_epi16(
154 // CHECK: call <16 x i16> @llvm.x86.avx10.vmovrsw256(
155 return _mm256_loadrs_epi16(__A);
158 __m256i test_mm256_mask_loadrs_epi16(__m256i __A, __mmask16 __B, const __m256i * __C) {
159 // CHECK-LABEL: @test_mm256_mask_loadrs_epi16(
160 // CHECK: call <16 x i16> @llvm.x86.avx10.vmovrsw256(
161 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
162 return _mm256_mask_loadrs_epi16(__A, __B, __C);
165 __m256i test_mm256_maskz_loadrs_epi16(__mmask16 __A, const __m256i * __B) {
166 // CHECK-LABEL: @test_mm256_maskz_loadrs_epi16(
167 // CHECK: call <16 x i16> @llvm.x86.avx10.vmovrsw256(
168 // CHECK: store <4 x i64> zeroinitializer
169 // CHECK: select <16 x i1> %{{.*}}, <16 x i16> %{{.*}}, <16 x i16> %{{.*}}
170 return _mm256_maskz_loadrs_epi16(__A, __B);