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