@@ -46,3 +46,171 @@ void test_mm_mask_store_sd(double * __P, __mmask8 __U, __m128d __A){
46
46
// LLVM: call void @llvm.masked.store.v2f64.p0(<2 x double> %{{.*}}, ptr %{{.*}}, i32 1, <2 x i1> %{{.*}})
47
47
_mm_mask_store_sd (__P , __U , __A );
48
48
}
49
+ __m512 test_mm512_mask_loadu_ps (__m512 __W , __mmask16 __U , void * __P )
50
+ {
51
+ // CIR-LABEL: _mm512_mask_loadu_ps
52
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.float>, !u32i, !cir.vector<!cir.int<s, 1> x 16>, !cir.vector<!cir.float x 16>) -> !cir.vector<!cir.float x 16>
53
+
54
+ // LLVM-LABEL: test_mm512_mask_loadu_ps
55
+ // LLVM: @llvm.masked.load.v16f32.p0(ptr %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
56
+ return _mm512_mask_loadu_ps (__W ,__U , __P );
57
+ }
58
+
59
+ __m512 test_mm512_maskz_load_ps (__mmask16 __U , void * __P )
60
+ {
61
+
62
+ // CIR-LABEL: _mm512_maskz_load_ps
63
+ // CIR: cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!cir.float x 16>>, !u32i, !cir.vector<!cir.int<s, 1> x 16>, !cir.vector<!cir.float x 16>) -> !cir.vector<!cir.float x 16>
64
+
65
+ // LLVM-LABEL: test_mm512_maskz_load_ps
66
+ // LLVM: @llvm.masked.load.v16f32.p0(ptr %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
67
+ return _mm512_maskz_load_ps (__U , __P );
68
+ }
69
+
70
+ __m512d test_mm512_mask_loadu_pd (__m512d __W , __mmask8 __U , void * __P )
71
+ {
72
+ // CIR-LABEL: _mm512_mask_loadu_pd
73
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.double>, !u32i, !cir.vector<!cir.int<s, 1> x 8>, !cir.vector<!cir.double x 8>) -> !cir.vector<!cir.double x 8>
74
+
75
+ // LLVM-LABEL: test_mm512_mask_loadu_pd
76
+ // LLVM: @llvm.masked.load.v8f64.p0(ptr %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
77
+ return _mm512_mask_loadu_pd (__W ,__U , __P );
78
+ }
79
+
80
+ __m512d test_mm512_maskz_load_pd (__mmask8 __U , void * __P )
81
+ {
82
+ // CIR-LABEL: _mm512_maskz_load_pd
83
+ // CIR: cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!cir.double x 8>>, !u32i, !cir.vector<!cir.int<s, 1> x 8>, !cir.vector<!cir.double x 8>) -> !cir.vector<!cir.double x 8>
84
+
85
+ // LLVM-LABEL: test_mm512_maskz_load_pd
86
+ // LLVM: @llvm.masked.load.v8f64.p0(ptr %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
87
+ return _mm512_maskz_load_pd (__U , __P );
88
+ }
89
+
90
+ __m512i test_mm512_mask_loadu_epi32 (__m512i __W , __mmask16 __U , void * __P )
91
+ {
92
+ // CIR-LABEL: _mm512_mask_loadu_epi32
93
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!s32i>, !u32i, !cir.vector<!cir.int<s, 1> x 16>, !cir.vector<!s32i x 16>) -> !cir.vector<!s32i x 16>
94
+
95
+ // LLVM-LABEL: test_mm512_mask_loadu_epi32
96
+ // LLVM: @llvm.masked.load.v16i32.p0(ptr %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
97
+ return _mm512_mask_loadu_epi32 (__W ,__U , __P );
98
+ }
99
+
100
+ __m512i test_mm512_maskz_loadu_epi32 (__mmask16 __U , void * __P )
101
+ {
102
+ // CIR-LABEL: _mm512_maskz_loadu_epi32
103
+ // CIR: cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!s32i>, !u32i, !cir.vector<!cir.int<s, 1> x 16>, !cir.vector<!s32i x 16>) -> !cir.vector<!s32i x 16>
104
+
105
+ // LLVM-LABEL: test_mm512_maskz_loadu_epi32
106
+ // LLVM: @llvm.masked.load.v16i32.p0(ptr %{{.*}}, i32 1, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
107
+ return _mm512_maskz_loadu_epi32 (__U , __P );
108
+ }
109
+
110
+ __m512i test_mm512_mask_loadu_epi64 (__m512i __W , __mmask8 __U , void * __P )
111
+ {
112
+ // CIR-LABEL: _mm512_mask_loadu_epi64
113
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!s64i>, !u32i, !cir.vector<!cir.int<s, 1> x 8>, !cir.vector<!s64i x 8>) -> !cir.vector<!s64i x 8>
114
+
115
+ // LLVM-LABEL: test_mm512_mask_loadu_epi64
116
+ // LLVM: @llvm.masked.load.v8i64.p0(ptr %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
117
+ return _mm512_mask_loadu_epi64 (__W ,__U , __P );
118
+ }
119
+
120
+ __m512i test_mm512_maskz_loadu_epi64 (__mmask16 __U , void * __P )
121
+ {
122
+ // CIR-LABEL: _mm512_maskz_loadu_epi64
123
+ // CIR: cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!s64i>, !u32i, !cir.vector<!cir.int<s, 1> x 8>, !cir.vector<!s64i x 8>) -> !cir.vector<!s64i x 8>
124
+
125
+ // LLVM-LABEL: test_mm512_maskz_loadu_epi64
126
+ // LLVM: @llvm.masked.load.v8i64.p0(ptr %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
127
+ return _mm512_maskz_loadu_epi64 (__U , __P );
128
+ }
129
+
130
+ __m128 test_mm_mask_load_ss (__m128 __A , __mmask8 __U , const float * __W )
131
+ {
132
+ // CIR-LABEL: _mm_mask_load_ss
133
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!cir.float x 4>>, !u32i, !cir.vector<!cir.int<s, 1> x 4>, !cir.vector<!cir.float x 4>) -> !cir.vector<!cir.float x 4>
134
+
135
+ // LLVM-LABEL: test_mm_mask_load_ss
136
+ // LLVM: call {{.*}}<4 x float> @llvm.masked.load.v4f32.p0(ptr %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
137
+ return _mm_mask_load_ss (__A , __U , __W );
138
+ }
139
+
140
+ __m128 test_mm_maskz_load_ss (__mmask8 __U , const float * __W )
141
+ {
142
+ // CIR-LABEL: _mm_maskz_load_ss
143
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!cir.float x 4>>, !u32i, !cir.vector<!cir.int<s, 1> x 4>, !cir.vector<!cir.float x 4>) -> !cir.vector<!cir.float x 4>
144
+
145
+ // LLVM-LABEL: test_mm_maskz_load_ss
146
+ // LLVM: call {{.*}}<4 x float> @llvm.masked.load.v4f32.p0(ptr %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}})
147
+ return _mm_maskz_load_ss (__U , __W );
148
+ }
149
+
150
+ __m128d test_mm_mask_load_sd (__m128d __A , __mmask8 __U , const double * __W )
151
+ {
152
+ // CIR-LABEL: _mm_mask_load_sd
153
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!cir.double x 2>>, !u32i, !cir.vector<!cir.int<s, 1> x 2>, !cir.vector<!cir.double x 2>) -> !cir.vector<!cir.double x 2>
154
+
155
+ // LLVM-LABEL: test_mm_mask_load_sd
156
+ // LLVM: call {{.*}}<2 x double> @llvm.masked.load.v2f64.p0(ptr %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
157
+ return _mm_mask_load_sd (__A , __U , __W );
158
+ }
159
+
160
+ __m128d test_mm_maskz_load_sd (__mmask8 __U , const double * __W )
161
+ {
162
+ // CIR-LABEL: _mm_maskz_load_sd
163
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!cir.double x 2>>, !u32i, !cir.vector<!cir.int<s, 1> x 2>, !cir.vector<!cir.double x 2>) -> !cir.vector<!cir.double x 2>
164
+
165
+ // LLVM-LABEL: test_mm_maskz_load_sd
166
+ // LLVM: call {{.*}}<2 x double> @llvm.masked.load.v2f64.p0(ptr %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}})
167
+ return _mm_maskz_load_sd (__U , __W );
168
+ }
169
+
170
+ __m512 test_mm512_mask_load_ps (__m512 __W , __mmask16 __U , void * __P )
171
+ {
172
+ // CIR-LABEL: _mm512_mask_load_ps
173
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!cir.float x 16>>, !u32i, !cir.vector<!cir.int<s, 1> x 16>, !cir.vector<!cir.float x 16>) -> !cir.vector<!cir.float x 16>
174
+
175
+ // LLVM-LABEL: test_mm512_mask_load_ps
176
+ // LLVM: @llvm.masked.load.v16f32.p0(ptr %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x float> %{{.*}})
177
+ return _mm512_mask_load_ps (__W ,__U , __P );
178
+ }
179
+
180
+ __m512d test_mm512_mask_load_pd (__m512d __W , __mmask8 __U , void * __P )
181
+ {
182
+ // CIR-LABEL: _mm512_mask_load_pd
183
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!cir.double x 8>>, !u32i, !cir.vector<!cir.int<s, 1> x 8>, !cir.vector<!cir.double x 8>) -> !cir.vector<!cir.double x 8>
184
+
185
+ // LLVM-LABEL: test_mm512_mask_load_pd
186
+ // LLVM: @llvm.masked.load.v8f64.p0(ptr %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x double> %{{.*}})
187
+ return _mm512_mask_load_pd (__W ,__U , __P );
188
+ }
189
+
190
+ __m512i test_mm512_mask_load_epi32 (__m512i __W , __mmask16 __U , void const * __P ) {
191
+ // CIR-LABEL: _mm512_mask_load_epi32
192
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!s32i x 16>>, !u32i, !cir.vector<!cir.int<s, 1> x 16>, !cir.vector<!s32i x 16>) -> !cir.vector<!s32i x 16>
193
+
194
+ // LLVM-LABEL: test_mm512_mask_load_epi32
195
+ // LLVM: @llvm.masked.load.v16i32.p0(ptr %{{.*}}, i32 64, <16 x i1> %{{.*}}, <16 x i32> %{{.*}})
196
+ return _mm512_mask_load_epi32 (__W , __U , __P );
197
+ }
198
+
199
+ __m512i test_mm512_mask_load_epi64 (__m512i __W , __mmask8 __U , void const * __P ) {
200
+ // CIR-LABEL: _mm512_mask_load_epi64
201
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!s64i x 8>>, !u32i, !cir.vector<!cir.int<s, 1> x 8>, !cir.vector<!s64i x 8>) -> !cir.vector<!s64i x 8>
202
+
203
+ // LLVM-LABEL: test_mm512_mask_load_epi64
204
+ // LLVM: @llvm.masked.load.v8i64.p0(ptr %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
205
+ return _mm512_mask_load_epi64 (__W , __U , __P );
206
+ }
207
+
208
+ __m512i test_mm512_maskz_load_epi64 (__mmask8 __U , void const * __P ) {
209
+ // CIR-LABEL: _mm512_maskz_load_epi64
210
+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.load" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.ptr<!cir.vector<!s64i x 8>>, !u32i, !cir.vector<!cir.int<s, 1> x 8>, !cir.vector<!s64i x 8>) -> !cir.vector<!s64i x 8>
211
+
212
+ // LLVM-LABEL: test_mm512_maskz_load_epi64
213
+ // LLVM: @llvm.masked.load.v8i64.p0(ptr %{{.*}}, i32 64, <8 x i1> %{{.*}}, <8 x i64> %{{.*}})
214
+ return _mm512_maskz_load_epi64 (__U , __P );
215
+ }
216
+
0 commit comments