Message ID | 20231129031659.17376-1-xujiahao@loongson.cn |
---|---|
State | New |
Headers | show |
Series | LoongArch: Fix lsx-vshuf.c and lasx-xvshuf_b.c tests fail on LA664 [PR112611] | expand |
Pushed to r14-6316. 在 2023/11/29 上午11:16, Jiahao Xu 写道: > 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: > > * gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c: Sure index less than 64. > * gcc.target/loongarch/vector/lsx/lsx-vshuf.c: Ditto. > > 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 641ea2315ff..03c479a085c 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 > @@ -44,9 +44,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; > @@ -138,33 +138,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); > > @@ -177,7 +158,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; > @@ -187,9 +168,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; > @@ -199,35 +180,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; > @@ -244,10 +206,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; > @@ -256,17 +218,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; > @@ -275,36 +237,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; > @@ -313,10 +256,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); > > @@ -358,29 +301,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; > @@ -390,16 +314,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; > @@ -408,17 +332,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; > @@ -427,17 +351,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; > @@ -448,8 +372,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); > > @@ -472,10 +396,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; > @@ -491,10 +415,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; > @@ -504,7 +428,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); > @@ -530,9 +454,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; > @@ -586,10 +510,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; > @@ -598,36 +522,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; > @@ -643,44 +548,6 @@ main () > __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[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; > @@ -701,9 +568,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; > @@ -719,10 +586,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; > @@ -731,17 +598,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; > @@ -750,10 +617,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 4e7fcc02b12..646935c921a 100644 > --- a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c > +++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c > @@ -21,7 +21,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); > @@ -32,7 +32,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); > @@ -64,10 +64,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); > > @@ -97,10 +97,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); > > @@ -119,10 +119,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); > > @@ -137,19 +137,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; > @@ -170,74 +170,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; > @@ -247,19 +214,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; > @@ -280,30 +236,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; > @@ -313,8 +269,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; > @@ -324,14 +280,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); > > @@ -346,8 +302,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; > @@ -357,30 +313,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;
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 641ea2315ff..03c479a085c 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 @@ -44,9 +44,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; @@ -138,33 +138,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); @@ -177,7 +158,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; @@ -187,9 +168,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; @@ -199,35 +180,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; @@ -244,10 +206,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; @@ -256,17 +218,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; @@ -275,36 +237,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; @@ -313,10 +256,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); @@ -358,29 +301,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; @@ -390,16 +314,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; @@ -408,17 +332,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; @@ -427,17 +351,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; @@ -448,8 +372,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); @@ -472,10 +396,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; @@ -491,10 +415,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; @@ -504,7 +428,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); @@ -530,9 +454,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; @@ -586,10 +510,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; @@ -598,36 +522,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; @@ -643,44 +548,6 @@ main () __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[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; @@ -701,9 +568,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; @@ -719,10 +586,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; @@ -731,17 +598,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; @@ -750,10 +617,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 4e7fcc02b12..646935c921a 100644 --- a/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c +++ b/gcc/testsuite/gcc.target/loongarch/vector/lsx/lsx-vshuf.c @@ -21,7 +21,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); @@ -32,7 +32,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); @@ -64,10 +64,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); @@ -97,10 +97,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); @@ -119,10 +119,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); @@ -137,19 +137,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; @@ -170,74 +170,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; @@ -247,19 +214,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; @@ -280,30 +236,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; @@ -313,8 +269,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; @@ -324,14 +280,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); @@ -346,8 +302,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; @@ -357,30 +313,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;