@@ -68,3 +68,66 @@ void test_mm256_mask_storeu_ps(void *__P, __mmask8 __U, __m256 __A) {
6868 // LLVM: @llvm.masked.store.v8f32.p0(<8 x float> %{{.*}}, ptr %{{.*}}, i32 1, <8 x i1> %{{.*}})
6969 return _mm256_mask_storeu_ps (__P , __U , __A );
7070}
71+
72+ void test_mm_mask_store_epi64 (void * __P , __mmask8 __U , __m128i __A ) {
73+ // CIR-LABEL: _mm_mask_store_epi64
74+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.store" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.vector<!s64i x 2>, !cir.ptr<!cir.vector<!s64i x 2>>, !u32i, !cir.vector<!cir.int<s, 1> x 2>) -> !void
75+
76+ // LLVM-LABEL: @test_mm_mask_store_epi64
77+ // LLVM: @llvm.masked.store.v2i64.p0(<2 x i64> %{{.*}}, ptr %{{.*}}, i32 16, <2 x i1> %{{.*}})
78+ return _mm_mask_store_epi64 (__P , __U , __A );
79+ }
80+
81+ void test_mm_mask_store_ps (void * __P , __mmask8 __U , __m128 __A ) {
82+ // CIR-LABEL: _mm_mask_store_ps
83+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.store" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.vector<!cir.float x 4>, !cir.ptr<!cir.vector<!cir.float x 4>>, !u32i, !cir.vector<!cir.int<s, 1> x 4>) -> !void
84+
85+ // LLVM-LABEL: @test_mm_mask_store_ps
86+ // LLVM: @llvm.masked.store.v4f32.p0(<4 x float> %{{.*}}, ptr %{{.*}}, i32 16, <4 x i1> %{{.*}})
87+ return _mm_mask_store_ps (__P , __U , __A );
88+ }
89+
90+ void test_mm_mask_store_pd (void * __P , __mmask8 __U , __m128d __A ) {
91+ // CIR-LABEL: _mm_mask_store_pd
92+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.store" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.vector<!cir.double x 2>, !cir.ptr<!cir.vector<!cir.double x 2>>, !u32i, !cir.vector<!cir.int<s, 1> x 2>) -> !void
93+
94+ // LLVM-LABEL: @test_mm_mask_store_pd
95+ // LLVM: @llvm.masked.store.v2f64.p0(<2 x double> %{{.*}}, ptr %{{.*}}, i32 16, <2 x i1> %{{.*}})
96+ return _mm_mask_store_pd (__P , __U , __A );
97+ }
98+
99+ void test_mm256_mask_store_epi32 (void * __P , __mmask8 __U , __m256i __A ) {
100+ // CIR-LABEL: _mm256_mask_store_epi32
101+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.store" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.vector<!s32i x 8>, !cir.ptr<!cir.vector<!s32i x 8>>, !u32i, !cir.vector<!cir.int<s, 1> x 8>) -> !void
102+
103+ // LLVM-LABEL: @test_mm256_mask_store_epi32
104+ // LLVM: @llvm.masked.store.v8i32.p0(<8 x i32> %{{.*}}, ptr %{{.*}}, i32 32, <8 x i1> %{{.*}})
105+ return _mm256_mask_store_epi32 (__P , __U , __A );
106+ }
107+
108+ void test_mm256_mask_store_epi64 (void * __P , __mmask8 __U , __m256i __A ) {
109+ // CIR-LABEL: _mm256_mask_store_epi64
110+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.store" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.vector<!s64i x 4>, !cir.ptr<!cir.vector<!s64i x 4>>, !u32i, !cir.vector<!cir.int<s, 1> x 4>) -> !void
111+
112+ // LLVM-LABEL: @test_mm256_mask_store_epi64
113+ // LLVM: @llvm.masked.store.v4i64.p0(<4 x i64> %{{.*}}, ptr %{{.*}}, i32 32, <4 x i1> %{{.*}})
114+ return _mm256_mask_store_epi64 (__P , __U , __A );
115+ }
116+
117+ void test_mm256_mask_store_ps (void * __P , __mmask8 __U , __m256 __A ) {
118+ // CIR-LABEL: _mm256_mask_store_ps
119+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.store" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.vector<!cir.float x 8>, !cir.ptr<!cir.vector<!cir.float x 8>>, !u32i, !cir.vector<!cir.int<s, 1> x 8>) -> !void
120+
121+ // LLVM-LABEL: @test_mm256_mask_store_ps
122+ // LLVM: @llvm.masked.store.v8f32.p0(<8 x float> %{{.*}}, ptr %{{.*}}, i32 32, <8 x i1> %{{.*}})
123+ return _mm256_mask_store_ps (__P , __U , __A );
124+ }
125+
126+ void test_mm256_mask_store_pd (void * __P , __mmask8 __U , __m256d __A ) {
127+ // CIR-LABEL: _mm256_mask_store_pd
128+ // CIR: %{{.*}} = cir.llvm.intrinsic "masked.store" %{{.*}}, %{{.*}}, %{{.*}}, %{{.*}} : (!cir.vector<!cir.double x 4>, !cir.ptr<!cir.vector<!cir.double x 4>>, !u32i, !cir.vector<!cir.int<s, 1> x 4>) -> !void
129+
130+ // LLVM-LABEL: @test_mm256_mask_store_pd
131+ // LLVM: @llvm.masked.store.v4f64.p0(<4 x double> %{{.*}}, ptr %{{.*}}, i32 32, <4 x i1> %{{.*}})
132+ return _mm256_mask_store_pd (__P , __U , __A );
133+ }
0 commit comments