================
@@ -73,4 +73,76 @@ __m256i test_mm256_undefined_si256(void) {
// OGCG-LABEL: test_mm256_undefined_si256
// OGCG: ret <4 x i64> zeroinitializer
return _mm256_undefined_si256();
+}
+
+__m256d test_mm256_shuffle_pd(__m256d A, __m256d B) {
+ // CIR-LABEL: test_mm256_shuffle_pd
+ // CIR: %{{.*}} = cir.vec.shuffle(%{{.*}}, %{{.*}} : !cir.vector<4 x
!cir.double>) [#cir.int<0> : !s32i, #cir.int<4> : !s32i, #cir.int<2> : !s32i,
#cir.int<6> : !s32i] : !cir.vector<4 x !cir.double>
+
+ // LLVM-LABEL: test_mm256_shuffle_pd
+ // LLVM: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32>
<i32 0, i32 4, i32 2, i32 6>
+
+ // OGCG-LABEL: test_mm256_shuffle_pd
+ // OGCG: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32>
<i32 0, i32 4, i32 2, i32 6>
+ return _mm256_shuffle_pd(A, B, 0);
+}
+
+__m256 test_mm256_shuffle_ps(__m256 A, __m256 B) {
+ // CIR-LABEL: test_mm256_shuffle_ps
+ // CIR: %{{.*}} = cir.vec.shuffle(%{{.*}}, %{{.*}} : !cir.vector<8 x
!cir.float>) [#cir.int<0> : !s32i, #cir.int<0> : !s32i, #cir.int<8> : !s32i,
#cir.int<8> : !s32i, #cir.int<4> : !s32i, #cir.int<4> : !s32i, #cir.int<12> :
!s32i, #cir.int<12> : !s32i] : !cir.vector<8 x !cir.float>
+
+ // LLVM-LABEL: test_mm256_shuffle_ps
+ // LLVM: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32>
<i32 0, i32 0, i32 8, i32 8, i32 4, i32 4, i32 12, i32 12>
+
+ // OGCG-LABEL: test_mm256_shuffle_ps
+ // OGCG: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32>
<i32 0, i32 0, i32 8, i32 8, i32 4, i32 4, i32 12, i32 12>
+ return _mm256_shuffle_ps(A, B, 0);
+}
+
+__m128 test_mm_permute_ps(__m128 A) {
+ // CIR-LABEL: test_mm_permute_ps
+ // CIR: cir.vec.shuffle(%{{.*}}, %{{.*}} : !cir.vector<4 x !cir.float>)
[#cir.int<2> : !s32i, #cir.int<3> : !s32i, #cir.int<0> : !s32i, #cir.int<1> :
!s32i] : !cir.vector<4 x !cir.float>
+
+ // LLVM-LABEL: test_mm_permute_ps
+ // LLVM: shufflevector <4 x float> %{{.*}}, <4 x float> poison, <4 x i32>
<i32 2, i32 3, i32 0, i32 1>
+
+ // OGCG-LABEL: test_mm_permute_ps
+ // OGCG: shufflevector <4 x float> %{{.*}}, <4 x float> poison, <4 x
i32> <i32 2, i32 3, i32 0, i32 1>
+ return _mm_permute_ps(A, 0x4E);
+}
+
+__m256 test_mm256_permute_ps(__m256 A) {
+ // CIR-LABEL: test_mm256_permute_ps
+ // CIR: cir.vec.shuffle(%{{.*}}, %{{.*}} : !cir.vector<8 x !cir.float>)
[#cir.int<2> : !s32i, #cir.int<3> : !s32i, #cir.int<0> : !s32i, #cir.int<1> :
!s32i, #cir.int<6> : !s32i, #cir.int<7> : !s32i, #cir.int<4> : !s32i,
#cir.int<5> : !s32i] : !cir.vector<8 x !cir.float>
+
+ // LLVM-LABEL: test_mm256_permute_ps
+ // LLVM: shufflevector <8 x float> %{{.*}}, <8 x float> poison, <8 x i32>
<i32 2, i32 3, i32 0, i32 1, i32 6, i32 7, i32 4, i32 5>
+
+ // OGCG-LABEL: test_mm256_permute_ps
+ // OGCG: shufflevector <8 x float> %{{.*}}, <8 x float> poison, <8 x i32>
<i32 2, i32 3, i32 0, i32 1, i32 6, i32 7, i32 4, i32 5>
+ return _mm256_permute_ps(A, 0x4E);
+}
+
+__m128d test_mm_permute_pd(__m128d A) {
+ // CIR-LABEL: test_mm_permute_pd
+ // CIR: cir.vec.shuffle(%{{.*}}, %{{.*}} : !cir.vector<2 x !cir.double>)
[#cir.int<1> : !s32i, #cir.int<0> : !s32i] : !cir.vector<2 x !cir.double>
+
+ // LLVM-LABEL: test_mm_permute_pd
+ // LLVM: shufflevector <2 x double> %{{.*}}, <2 x double> poison, <2 x
i32> <i32 1, i32 0>
+
+ // OGCG-LABEL: test_mm_permute_pd
+ // OGCG: shufflevector <2 x double> %{{.*}}, <2 x double> poison, <2 x
i32> <i32 1, i32 0>
+ return _mm_permute_pd(A, 0x1);
+}
+
+__m256d test_mm256_permute_pd(__m256d A) {
+ // CIR-LABEL: test_mm256_permute_pd
+ // CIR: cir.vec.shuffle(%{{.*}}, %{{.*}} : !cir.vector<4 x !cir.double>)
[#cir.int<1> : !s32i, #cir.int<0> : !s32i, #cir.int<3> : !s32i, #cir.int<2> :
!s32i] : !cir.vector<4 x !cir.double>
+
+ // LLVM-LABEL: test_mm256_permute_pd
+ // LLVM: shufflevector <4 x double> %{{.*}}, <4 x double> poison, <4 x
i32> <i32 1, i32 0, i32 3, i32 2>
+
+ // OGCG-LABEL: test_mm256_permute_pd
+ // OGCG: shufflevector <4 x double> %{{.*}}, <4 x double> poison, <4 x
i32> <i32 1, i32 0, i32 3, i32 2>
+ return _mm256_permute_pd(A, 0x5);
----------------
HendrikHuebner wrote:
could you add a newline at the end of the file?
https://github.com/llvm/llvm-project/pull/169178
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits