aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiahao Xu <xujiahao@loongson.cn>2023-11-29 11:16:59 +0800
committerLulu Cheng <chenglulu@loongson.cn>2023-12-08 16:43:27 +0800
commit40366b89e9c8e727af70ecf7007cba6c51e4b7d2 (patch)
treef37d0181e4edbcac875334044e9495ea11e089d4
parent22362d0f77574e7c06c47181a581bacefff9d030 (diff)
downloadgcc-40366b89e9c8e727af70ecf7007cba6c51e4b7d2.zip
gcc-40366b89e9c8e727af70ecf7007cba6c51e4b7d2.tar.gz
gcc-40366b89e9c8e727af70ecf7007cba6c51e4b7d2.tar.bz2
LoongArch: Fix lsx-vshuf.c and lasx-xvshuf_b.c tests fail on LA664 [PR112611]
For [x]vshuf instructions, if the index value in the selector exceeds 63, it triggers undefined behavior on LA464, but not on LA664. To ensure compatibility of these two tests on both LA464 and LA664, we have modified both tests to ensure that the index value in the selector does not exceed 63. gcc/testsuite/ChangeLog: PR target/112611 * gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c: Sure index less than 64. * gcc.target/loongarch/vector/lsx/lsx-vshuf.c: Ditto.
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c343
-rw-r--r--gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c162
2 files changed, 164 insertions, 341 deletions
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c
index d8a29db..b8ab387 100644
--- a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c
@@ -43,9 +43,9 @@ main ()
*((unsigned long *)&__m256i_op1[1]) = 0xfffffefefffffefe;
*((unsigned long *)&__m256i_op1[0]) = 0xfffffefefffffefe;
*((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[2]) = 0xfffffff8fffffff8;
+ *((unsigned long *)&__m256i_op2[2]) = 0x3f3f3f383f3f3f38;
*((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[0]) = 0xfffffff8fc000000;
+ *((unsigned long *)&__m256i_op2[0]) = 0x3f3f3f383c000000;
*((unsigned long *)&__m256i_result[3]) = 0xfafafafafafafafa;
*((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
*((unsigned long *)&__m256i_result[1]) = 0xfefefefefefefefe;
@@ -137,33 +137,14 @@ main ()
*((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_op2[3]) = 0x0000ffffffffffff;
- *((unsigned long *)&__m256i_op2[2]) = 0x0000ffff0000ffff;
- *((unsigned long *)&__m256i_op2[1]) = 0x0000ffffffffffff;
- *((unsigned long *)&__m256i_op2[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000111111111111;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000222200002222;
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000111111111111;
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000222200002222;
*((unsigned long *)&__m256i_result[3]) = 0xffff000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_result[1]) = 0xffff000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0000;
- __m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
- ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
-
- *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[3]) = 0x000000000000ffff;
- *((unsigned long *)&__m256i_op2[2]) = 0x000000000000ffff;
- *((unsigned long *)&__m256i_op2[1]) = 0x000000000000ffff;
- *((unsigned long *)&__m256i_op2[0]) = 0x000000000000ffff;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
__m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
@@ -176,7 +157,7 @@ main ()
*((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[2]) = 0x0000000000077fff;
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000032f1f;
*((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
*((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
@@ -186,9 +167,9 @@ main ()
__m256i_out = __lasx_xvshuf_b (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffefe;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000101;
- *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffefe;
+ *((unsigned long *)&__m256i_op0[3]) = 0x0011001100110011;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0011001100110011;
*((unsigned long *)&__m256i_op0[0]) = 0x0000000000000101;
*((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op1[2]) = 0x67eee33567eee435;
@@ -198,35 +179,16 @@ main ()
*((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op2[1]) = 0x00000000ffffffff;
*((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
__m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[3]) = 0x0022002200000000;
*((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
- __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
- ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
-
- *((unsigned long *)&__m256i_op0[3]) = 0xffffffff80000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0xffffffff80000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001f001f00000000;
*((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
@@ -243,10 +205,10 @@ main ()
__m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[3]) = 0x0011001100110011;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0011001100110011;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0011001100110011;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0011001100110011;
*((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
@@ -255,17 +217,17 @@ main ()
*((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
__m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[3]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x003f003f003f003f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x003f003f003f003f;
*((unsigned long *)&__m256i_op1[3]) = 0xefdfefdf00000000;
*((unsigned long *)&__m256i_op1[2]) = 0xefdfefdfefdfefdf;
*((unsigned long *)&__m256i_op1[1]) = 0xefdfefdf00000000;
@@ -274,36 +236,17 @@ main ()
*((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
- __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
- ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
-
- *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_result[2]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_result[1]) = 0xefdfefdfefdfefdf;
+ *((unsigned long *)&__m256i_result[0]) = 0xefdfefdfefdfefdf;
__m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0x7575ffff75757595;
- *((unsigned long *)&__m256i_op0[2]) = 0x7575ffff7575f575;
- *((unsigned long *)&__m256i_op0[1]) = 0x7575ffff75757595;
- *((unsigned long *)&__m256i_op0[0]) = 0x7575ffff7575f575;
+ *((unsigned long *)&__m256i_op0[3]) = 0x0035000000350005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0035000000350015;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0035000000350025;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0035000000350035;
*((unsigned long *)&__m256i_op1[3]) = 0x0000000000000003;
*((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
*((unsigned long *)&__m256i_op1[1]) = 0x0000000000000003;
@@ -312,10 +255,10 @@ main ()
*((unsigned long *)&__m256i_op2[2]) = 0x7575757575757575;
*((unsigned long *)&__m256i_op2[1]) = 0x7575757575757575;
*((unsigned long *)&__m256i_op2[0]) = 0x7575757575757575;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[2]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[1]) = 0x7575757575757575;
+ *((unsigned long *)&__m256i_result[0]) = 0x7575757575757575;
__m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
@@ -357,29 +300,10 @@ main ()
__m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
- __m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
- ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
-
- *((unsigned long *)&__m256i_op0[3]) = 0x000000000000fffe;
- *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000f0;
- *((unsigned long *)&__m256i_op0[1]) = 0x000000000000fffe;
- *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000f0;
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000003e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000003e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000010;
*((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
@@ -389,16 +313,16 @@ main ()
*((unsigned long *)&__m256i_op2[1]) = 0x8000000000000000;
*((unsigned long *)&__m256i_op2[0]) = 0x000000ffff88ff88;
*((unsigned long *)&__m256i_result[3]) = 0xff88ff88ff880000;
- *((unsigned long *)&__m256i_result[2]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff88ff88ff88ff88;
*((unsigned long *)&__m256i_result[1]) = 0xff88ff88ff880000;
- *((unsigned long *)&__m256i_result[0]) = 0xff88ff88ff880000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff88ff88ff88ff88;
__m256i_out = __lasx_xvshuf_h (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0x000000010000ffe1;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000101001e18;
- *((unsigned long *)&__m256i_op0[1]) = 0x000000010000ffe1;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000101001e18;
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000011;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000018;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000008;
*((unsigned long *)&__m256i_op1[3]) = 0x98111cca98111cca;
*((unsigned long *)&__m256i_op1[2]) = 0x98111cca98111cca;
*((unsigned long *)&__m256i_op1[1]) = 0x98111cca98111cca;
@@ -407,17 +331,17 @@ main ()
*((unsigned long *)&__m256i_op2[2]) = 0x0000000101001e18;
*((unsigned long *)&__m256i_op2[1]) = 0x000000010000ffe1;
*((unsigned long *)&__m256i_op2[0]) = 0x0000000101001e18;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
*((unsigned long *)&__m256i_result[2]) = 0x0000000101001e18;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000100000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
*((unsigned long *)&__m256i_result[0]) = 0x0000000101001e18;
__m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
- *((unsigned long *)&__m256i_op0[2]) = 0x80008000b3e8fef1;
- *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
- *((unsigned long *)&__m256i_op0[0]) = 0x80008000802ea100;
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000010000001a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000001100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000002100000010;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000310000001f;
*((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
@@ -426,17 +350,17 @@ main ()
*((unsigned long *)&__m256i_op2[2]) = 0x0000000000000002;
*((unsigned long *)&__m256i_op2[1]) = 0x0000000000000001;
*((unsigned long *)&__m256i_op2[0]) = 0x00000000012e2110;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
*((unsigned long *)&__m256i_result[2]) = 0x0000000200000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x012e2110012e2110;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000012e2110;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
__m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0x0000000082a54290;
- *((unsigned long *)&__m256i_op0[2]) = 0x00000000028aa700;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000082a54290;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54287;
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000002f00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000001a00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000010000001c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000e0000000c;
*((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[2]) = 0x00000000002a542a;
*((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
@@ -447,8 +371,8 @@ main ()
*((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
*((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
*((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000002a542a;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000002a542a;
__m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
@@ -471,10 +395,10 @@ main ()
__m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
- *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000031;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000031;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000031;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000031;
*((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
@@ -490,10 +414,10 @@ main ()
__m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0x0001000100010001;
- *((unsigned long *)&__m256i_op0[2]) = 0x0001000100010001;
- *((unsigned long *)&__m256i_op0[1]) = 0x0001000100010001;
- *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000200000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000400000003;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000005;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000800000007;
*((unsigned long *)&__m256i_op1[3]) = 0x000000007fc00000;
*((unsigned long *)&__m256i_op1[2]) = 0x000000007fc00000;
*((unsigned long *)&__m256i_op1[1]) = 0x000000007fc00000;
@@ -503,7 +427,7 @@ main ()
*((unsigned long *)&__m256i_op2[1]) = 0xdfffffffdfffffff;
*((unsigned long *)&__m256i_op2[0]) = 0x8000000080000000;
*((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
- *((unsigned long *)&__m256i_result[2]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fc00000dfffffff;
*((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
*((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
__m256i_out = __lasx_xvshuf_w (__m256i_op0, __m256i_op1, __m256i_op2);
@@ -529,9 +453,9 @@ main ()
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
*((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0001000104000200;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000002000000030;
*((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0001000104000200;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001000000000;
*((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
*((unsigned long *)&__m256i_op1[2]) = 0xffff0000ffff0000;
*((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
@@ -585,10 +509,10 @@ main ()
__m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0x0000fffffe01fe52;
- *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff01ff02;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000fffffe01fe52;
- *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff01ff02;
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000003;
*((unsigned long *)&__m256i_op1[3]) = 0x0000800000000000;
*((unsigned long *)&__m256i_op1[2]) = 0x0000000080008001;
*((unsigned long *)&__m256i_op1[1]) = 0x0000800000000000;
@@ -597,36 +521,17 @@ main ()
*((unsigned long *)&__m256i_op2[2]) = 0x000000000000ffff;
*((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op2[0]) = 0x000000000000ffff;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000080008001;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000080008001;
- __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
- ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
-
- *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
*((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000080008001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000800000000000;
__m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
*((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000011;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000022;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000033;
*((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
@@ -646,44 +551,6 @@ main ()
*((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
- __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
- ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
-
- *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[2]) = 0x0008000000000000;
- *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op1[0]) = 0x0008000000000000;
- *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
- __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
- ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
-
- *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[3]) = 0x7fff80007fff0000;
*((unsigned long *)&__m256i_op1[2]) = 0x0000000000008000;
*((unsigned long *)&__m256i_op1[1]) = 0x7fff80007fff0000;
@@ -700,9 +567,9 @@ main ()
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
*((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000002000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000002000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000010;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000030;
*((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
@@ -718,10 +585,10 @@ main ()
__m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0xfffeb6839ffffd80;
- *((unsigned long *)&__m256i_op0[2]) = 0xfffeb8649d0d6250;
- *((unsigned long *)&__m256i_op0[1]) = 0xfffeb6839ffffd80;
- *((unsigned long *)&__m256i_op0[0]) = 0xfffeb8649d0d6250;
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000000a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000001b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000002c;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000003d;
*((unsigned long *)&__m256i_op1[3]) = 0xfffeb6839ffffd80;
*((unsigned long *)&__m256i_op1[2]) = 0xfffe97c020010001;
*((unsigned long *)&__m256i_op1[1]) = 0xfffeb6839ffffd80;
@@ -730,17 +597,17 @@ main ()
*((unsigned long *)&__m256i_op2[2]) = 0xfffe97c020010001;
*((unsigned long *)&__m256i_op2[1]) = 0xfffeb6839ffffd80;
*((unsigned long *)&__m256i_op2[0]) = 0xfffe97c020010001;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffeb6839ffffd80;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffe97c020010001;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffeb6839ffffd80;
__m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
- *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000001a;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000001b;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000007;
*((unsigned long *)&__m256i_op1[3]) = 0x0000000000010001;
*((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
*((unsigned long *)&__m256i_op1[1]) = 0x0000000000010001;
@@ -749,10 +616,10 @@ main ()
*((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
*((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
__m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c
index 8153964..f3b800f 100644
--- a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c
@@ -20,7 +20,7 @@ main ()
*((unsigned long *)&__m128i_op1[1]) = 0x0000000401000001;
*((unsigned long *)&__m128i_op1[0]) = 0x0001000100000004;
*((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[0]) = 0x00000000007f0000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x00000000003f0000;
*((unsigned long *)&__m128i_result[1]) = 0x0404040404040404;
*((unsigned long *)&__m128i_result[0]) = 0x0404040404000404;
__m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
@@ -31,7 +31,7 @@ main ()
*((unsigned long *)&__m128i_op1[1]) = 0xffffffffffffffff;
*((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_op2[0]) = 0x3f2f1f0f00000000;
*((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
__m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
@@ -63,10 +63,10 @@ main ()
*((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
*((unsigned long *)&__m128i_op1[1]) = 0x52525252adadadad;
*((unsigned long *)&__m128i_op1[0]) = 0x52525252adadadad;
- *((unsigned long *)&__m128i_op2[1]) = 0x800000007fffffff;
- *((unsigned long *)&__m128i_op2[0]) = 0x800000007fffffff;
- *((unsigned long *)&__m128i_result[1]) = 0x00adadad00000000;
- *((unsigned long *)&__m128i_result[0]) = 0x00adadad00000000;
+ *((unsigned long *)&__m128i_op2[1]) = 0x2000000004030201;
+ *((unsigned long *)&__m128i_op2[0]) = 0x2000000014131211;
+ *((unsigned long *)&__m128i_result[1]) = 0xadadadad52adadad;
+ *((unsigned long *)&__m128i_result[0]) = 0xadadadadffffffff;
__m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
@@ -96,10 +96,10 @@ main ()
*((unsigned long *)&__m128i_op0[0]) = 0x0000000000000100;
*((unsigned long *)&__m128i_op1[1]) = 0x04040403fafafafc;
*((unsigned long *)&__m128i_op1[0]) = 0x000000000000ff80;
- *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[1]) = 0x8080808080808080;
- *((unsigned long *)&__m128i_result[0]) = 0x8080808080808080;
+ *((unsigned long *)&__m128i_op2[1]) = 0x00101a1b1c1d1e1f;
+ *((unsigned long *)&__m128i_op2[0]) = 0x0807060504030201;
+ *((unsigned long *)&__m128i_result[1]) = 0x8000020202000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xfc000000000000ff;
__m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
@@ -118,10 +118,10 @@ main ()
*((unsigned long *)&__m128i_op0[0]) = 0xffd7ff8dffa4ff7a;
*((unsigned long *)&__m128i_op1[1]) = 0x34947b4b11684f92;
*((unsigned long *)&__m128i_op1[0]) = 0xee297a731e5c5f86;
- *((unsigned long *)&__m128i_op2[1]) = 0x7fffffffffffffff;
- *((unsigned long *)&__m128i_op2[0]) = 0xffc0000000000000;
- *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[0]) = 0x0000868686868686;
+ *((unsigned long *)&__m128i_op2[1]) = 0x1f0710301a2b332d;
+ *((unsigned long *)&__m128i_op2[0]) = 0x1f20000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffee7a7a9811ff7b;
+ *((unsigned long *)&__m128i_result[0]) = 0xff86868686868686;
__m128i_out = __lsx_vshuf_b (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
@@ -136,19 +136,19 @@ main ()
__m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
- *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[1]) = 0x001f002f003f000f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x001f002f003f000f;
*((unsigned long *)&__m128i_op1[1]) = 0x7fffffffffffffff;
*((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x7fff7fff7fff7fff;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff7fff7fff;
__m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[1]) = 0x000100040010001f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0002000300110012;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x000000002bfd9461;
*((unsigned long *)&__m128i_op2[1]) = 0x00007fff00007fff;
@@ -169,74 +169,41 @@ main ()
__m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
- *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
- __m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
- ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
-
- *((unsigned long *)&__m128i_op0[1]) = 0x000300037ff000ff;
- *((unsigned long *)&__m128i_op0[0]) = 0x0003000300a10003;
+ *((unsigned long *)&__m128i_op0[1]) = 0x000300030000001f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0003000300000003;
*((unsigned long *)&__m128i_op1[1]) = 0x000300037ff000ff;
*((unsigned long *)&__m128i_op1[0]) = 0x0003000300a10003;
*((unsigned long *)&__m128i_op2[1]) = 0x000000007ff000ff;
*((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000003;
*((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
__m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x0909000009090000;
- *((unsigned long *)&__m128i_op0[0]) = 0x0909000009090000;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0019000000090000;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0019000000090000;
*((unsigned long *)&__m128i_op1[1]) = 0x0909000009090000;
*((unsigned long *)&__m128i_op1[0]) = 0x0909000009090000;
*((unsigned long *)&__m128i_op2[1]) = 0x002a05a2f059094a;
*((unsigned long *)&__m128i_op2[0]) = 0x05ad3ba576eae048;
- *((unsigned long *)&__m128i_result[1]) = 0x0909e0480909e048;
- *((unsigned long *)&__m128i_result[0]) = 0x0909e0480909e048;
- __m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
- ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
-
- *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x909e0480909e048;
+ *((unsigned long *)&__m128i_result[0]) = 0x909e0480909e048;
__m128i_out = __lsx_vshuf_h (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x00000000000000c0;
- *((unsigned long *)&__m128i_op0[0]) = 0x00000001ffffff29;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000030;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000029;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op2[1]) = 0x00000000000000c0;
*((unsigned long *)&__m128i_op2[0]) = 0x00000001ffffff29;
- *((unsigned long *)&__m128i_result[1]) = 0xffffff2900000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffff29ffffff29;
*((unsigned long *)&__m128i_result[0]) = 0x0000000100000001;
__m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
*((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
- __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
- ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
-
- *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op0[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000001f;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x1f54e0ab00000000;
*((unsigned long *)&__m128i_op2[1]) = 0x0101010101010101;
@@ -246,19 +213,8 @@ main ()
__m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op2[0]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
- __m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
- ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
-
- *((unsigned long *)&__m128i_op0[1]) = 0x0000000000007fff;
- *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000002f0000002f;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000001000000000;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op2[1]) = 0x0000000020000020;
@@ -279,30 +235,30 @@ main ()
__m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op0[0]) = 0x0000000004870ba0;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000900000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000002000000003;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x0000001000000010;
*((unsigned long *)&__m128i_op2[1]) = 0x8000000100000000;
*((unsigned long *)&__m128i_op2[0]) = 0x8000000000000103;
*((unsigned long *)&__m128i_result[1]) = 0x0000010300000103;
- *((unsigned long *)&__m128i_result[0]) = 0x0000010300000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x0000010380000001;
__m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x000000ff0000857a;
- *((unsigned long *)&__m128i_op0[0]) = 0x05fafe0101fe000e;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001000000007;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000002000000001;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op2[1]) = 0xffffffffffffffff;
*((unsigned long *)&__m128i_op2[0]) = 0xffffffffffffffff;
*((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffffffffffffff;
__m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0xada4808924882588;
- *((unsigned long *)&__m128i_op0[0]) = 0xacad25090caca5a4;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000001a0000001b;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000a0000000b;
*((unsigned long *)&__m128i_op1[1]) = 0x021b7d24c9678a35;
*((unsigned long *)&__m128i_op1[0]) = 0x030298a6a1030a49;
*((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
@@ -312,8 +268,8 @@ main ()
__m128i_out = __lsx_vshuf_w (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x00000000ffffffff;
- *((unsigned long *)&__m128i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000013;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
@@ -323,14 +279,14 @@ main ()
__m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0xdfa6e0c6d46cdc13;
- *((unsigned long *)&__m128i_op0[0]) = 0x21fc7081ec69b5f2;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000011;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x000000002c002400;
*((unsigned long *)&__m128i_op2[1]) = 0xffffb96bffff57c9;
*((unsigned long *)&__m128i_op2[0]) = 0xffff6080ffff4417;
- *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0xffffb96bffff57c9;
+ *((unsigned long *)&__m128i_result[0]) = 0xffffb96bffff57c9;
__m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
@@ -345,8 +301,8 @@ main ()
__m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000000;
- *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000010;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000002000;
*((unsigned long *)&__m128i_op1[0]) = 0xf0003000f0003000;
*((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;
@@ -356,30 +312,30 @@ main ()
__m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x021b7d2449678a35;
- *((unsigned long *)&__m128i_op0[0]) = 0x030298a621030a49;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000007;
+ *((unsigned long *)&__m128i_op0[0]) = 0x000000000000001a;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x7fff7fff7fff7fff;
*((unsigned long *)&__m128i_op2[1]) = 0x021b7d24c9678a35;
*((unsigned long *)&__m128i_op2[0]) = 0x030298a6a1030a49;
- *((unsigned long *)&__m128i_result[1]) = 0x021b7d24c9678a35;
- *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[0]) = 0x7fff7fff7fff7fff;
__m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0x7f7f00007f7f0000;
- *((unsigned long *)&__m128i_op0[0]) = 0x7f7f80807f7f8080;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000001;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x0000fffe0000fffe;
*((unsigned long *)&__m128i_op2[1]) = 0x7f8000007f800000;
*((unsigned long *)&__m128i_op2[0]) = 0x7f8000007f800000;
- *((unsigned long *)&__m128i_result[1]) = 0x7f8000007f800000;
- *((unsigned long *)&__m128i_result[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m128i_result[1]) = 0x0000fffe0000fffe;
+ *((unsigned long *)&__m128i_result[0]) = 0x7f8000007f800000;
__m128i_out = __lsx_vshuf_d (__m128i_op0, __m128i_op1, __m128i_op2);
ASSERTEQ_64 (__LINE__, __m128i_result, __m128i_out);
- *((unsigned long *)&__m128i_op0[1]) = 0xffffffffffffffff;
- *((unsigned long *)&__m128i_op0[0]) = 0xfffffffffff10000;
+ *((unsigned long *)&__m128i_op0[1]) = 0x0000000000000010;
+ *((unsigned long *)&__m128i_op0[0]) = 0x0000000000000020;
*((unsigned long *)&__m128i_op1[1]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op1[0]) = 0x0000000000000000;
*((unsigned long *)&__m128i_op2[1]) = 0x0000000000000000;