5365 lines
288 KiB
Diff
5365 lines
288 KiB
Diff
From 9789698300a07a107bf78cd1c7fb9cf8fbddfca1 Mon Sep 17 00:00:00 2001
|
|
From: Xiaolong Chen <chenxiaolong@loongson.cn>
|
|
Date: Tue, 12 Sep 2023 17:07:28 +0800
|
|
Subject: [PATCH 119/124] LoongArch: Add tests for ASX vector
|
|
xvpackev/xvpackod/xvpickev/xvpickod/
|
|
xvpickve2gr/xvreplgr2vr/xvreplve/xvreplve0/xvreplvei/xvshuf4i/xvshuf
|
|
instructions.
|
|
|
|
gcc/testsuite/ChangeLog:
|
|
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvpackev.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvpackod.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvpickev.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvpickod.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvpickve.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvreplve.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c: New test.
|
|
* gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c: New test.
|
|
|
|
Signed-off-by: Peng Fan <fanpeng@loongson.cn>
|
|
Signed-off-by: ticat_fp <fanpeng@loongson.cn>
|
|
---
|
|
.../loongarch/vector/lasx/lasx-xvpackev.c | 501 ++++++++++++
|
|
.../loongarch/vector/lasx/lasx-xvpackod.c | 575 +++++++++++++
|
|
.../loongarch/vector/lasx/lasx-xvpickev.c | 515 ++++++++++++
|
|
.../loongarch/vector/lasx/lasx-xvpickod.c | 530 ++++++++++++
|
|
.../loongarch/vector/lasx/lasx-xvpickve.c | 130 +++
|
|
.../loongarch/vector/lasx/lasx-xvpickve2gr.c | 388 +++++++++
|
|
.../loongarch/vector/lasx/lasx-xvreplgr2vr.c | 380 +++++++++
|
|
.../loongarch/vector/lasx/lasx-xvreplve.c | 536 ++++++++++++
|
|
.../loongarch/vector/lasx/lasx-xvreplve0.c | 471 +++++++++++
|
|
.../loongarch/vector/lasx/lasx-xvreplvei.c | 20 +
|
|
.../loongarch/vector/lasx/lasx-xvshuf4i_b.c | 430 ++++++++++
|
|
.../loongarch/vector/lasx/lasx-xvshuf_b.c | 761 ++++++++++++++++++
|
|
12 files changed, 5237 insertions(+)
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackev.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackod.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickev.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickod.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c
|
|
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c
|
|
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackev.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackev.c
|
|
new file mode 100644
|
|
index 000000000..33b96d657
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackev.c
|
|
@@ -0,0 +1,501 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x81f7f2599f0509c2;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x51136d3c78388916;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x044819410d87e69a;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x21d3905ae3e93be0;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x5125883a30da0f20;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x6d7b2d3ac2777aeb;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x000019410000e69a;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xf259905a09c23be0;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000883a00000f20;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x6d3c2d3a89167aeb;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x4f8000004f800000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x4f7fffbf0000fe00;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000004f800000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x4f7fffe64f7fffc0;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xfe02fe02fee5fe22;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xff49fe4200000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffbf0000fe000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fe020000fe22;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffe6fe42ffc00000;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff80;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
|
|
+ *((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_result[3]) = 0x000000000000ff80;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xc06500550055ffab;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xc06500550055ffab;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffff0000ffff0000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00550000ffab0001;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffff0000ffff0000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00550000ffab0001;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000001000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000001000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000401000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000401000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000401000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000401000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000400000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000400000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000400000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000400000000;
|
|
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x01fe01fe01fe01fe;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x01fe01fe01fe01fe;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x01fe01fe01fe01fe;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x01fe01fe00000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x01fe01fe01fe01fe;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x01fe01fe00000000;
|
|
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ffffffffff;
|
|
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
|
|
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002a54290;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54290;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000154dc84;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000089;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000002a54290;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000154dc84;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000002a54290;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000089;
|
|
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x0000000000000200;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000200;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000200;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000200;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000200;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000200;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000200;
|
|
+ __m256i_out = __lasx_xvpackev_w (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000003;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000003;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x7f8000007f800000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fc000007fc00000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x7f8000007f800000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fc000007fc00000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0080010000800100;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00c0000000c00000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0080010000800100;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00c0000000c00000;
|
|
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000001fdfffffe02;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000001fefe;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff01fefffeff02;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff00ff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fd00ffff02ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001fffeff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xff00fe00feff02ff;
|
|
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x8011ffee804c004c;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00faff0500c3ff3c;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x80f900f980780078;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0057ffa800ceff31;
|
|
+ *((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_result[3]) = 0xffee0000004c0000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xff050000ff3c0000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00f9000000780000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffa80000ff310000;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x0000001d0000001d;
|
|
+ *((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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00001d0000001d00;
|
|
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffe20001dfe1f;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffe20001dfe1f;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003fe000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003fe000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00003fe000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00003fe000000000;
|
|
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x00ffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x00ffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff00000000;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x6);
|
|
+ *((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]) = 0x00000000ff890000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ff790000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ff890000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff790000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ff790000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ff790000;
|
|
+ __m256i_out = __lasx_xvpackev_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000100;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000100;
|
|
+ *((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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x41dffbffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffff00ff800000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x41dffbffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffff00ff800000;
|
|
+ *((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_result[3]) = 0xfbff0000ffff0000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xff00000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xfbff0000ffff0000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackev_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffe7ffffffe7;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffe7ffffffe7;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffe7ffffffe7;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffe7ffffffe7;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000007b007e;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000007b007e;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffe700000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffe7007b007e;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffe700000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffe7007b007e;
|
|
+ __m256i_out = __lasx_xvpackev_w (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x0000000008000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0003fffc0803fff8;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000008000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003fffc0803fff8;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fffc0000fff8;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fffc0000fff8;
|
|
+ __m256i_out = __lasx_xvpackev_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackod.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackod.c
|
|
new file mode 100644
|
|
index 000000000..cdd20e881
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpackod.c
|
|
@@ -0,0 +1,575 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f057f0b7f5b007f;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x7f00ff00ff00ff00;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x7f7fff7fff7fff00;
|
|
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff00000000ffff;
|
|
+ *((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]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffff000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fffffff;
|
|
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff5f5c;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff5f5c;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000fff00000fff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000fff00000fff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000fff00000fff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000fff00000fff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000f0000000f;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xff00ff0fff005f0f;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000f0000000f;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xff00ff0fff005f0f;
|
|
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
|
|
+ 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_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((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_xvpackod_h (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0xffffffff000607f7;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000010017e7d1;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff000607f7;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001001807f1;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00000007;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000e7;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00000007;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000007;
|
|
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0006000000040000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0002555500000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0006000000040000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002555500000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x555555553f800000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x555555553f800000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0006000000040000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0006000000040000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x000000000000003f;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000003f;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000003f;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000003f;
|
|
+ *((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_xvpackod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000002a542a;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000002a542a;
|
|
+ *((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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000005400;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000005400;
|
|
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
|
|
+ *((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_xvpackod_w (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x0007fff8000ffff0;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000007fff8;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0007fff8000ffff0;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000007fff8;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0007fff8000ffff0;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0007fff8000ffff0;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffefffef00000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffefffefffefffef;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffefffef00000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffefffefffefffef;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000002000000020;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000002000000020;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000002000000020;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000002000000020;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xff00ff0000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xff00ff00ff00ff00;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff0000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xff00ff00ff00ff00;
|
|
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x0000f0000000f000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000f0000000f000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000f0000000f000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000f0000000f000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000f0000000f000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000f0000000f000;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fefffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fefffffffffffff;
|
|
+ *((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_result[3]) = 0x7fefffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x7fefffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
|
|
+ __m256i_out = __lasx_xvpackod_b (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x7575757575757575;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7575757575757575;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x7575757575757575;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7575757575757575;
|
|
+ *((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_result[3]) = 0x7575757575757575;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x7575757575757575;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000c8;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000c8;
|
|
+ *((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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000022beb03f;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffa2beb040;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000022beb03f;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffa2beb040;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000022beb03f;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffa2beb040;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000022beb03f;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffa2beb040;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000022be22be;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fffa2bea2be;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000022be22be;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x7fff7fffa2bea2be;
|
|
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0xfff10000fff10000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xfff10000fff10000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xfff10000fff10000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xfff10000fff10000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xfff10000fff10000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xfff10000fff10000;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff10000fff10000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff10000fff10000;
|
|
+ *((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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xfff1000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xfff1000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000200000008;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000200000008;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffff00ffffff00;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffff00ffffff00;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ff0000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ff0000000000;
|
|
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000555500005555;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000555500005555;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000555500005555;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000555500005555;
|
|
+ *((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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000fffcfffcfffc;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffcfffcfffcfffc;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffcfffcfffc;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffcfffcfffcfffc;
|
|
+ *((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_result[3]) = 0x0000fffcfffcfffc;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fffcfffcfffc;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000a0008;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000a0008;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ff88ff88;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff88ff88;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000080000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000080000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ff88ff88;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff88ff88;
|
|
+ *((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_result[3]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000fff8ffc0;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ff00fff8ffc0;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000fff8ffc0;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ff00fff8ffc0;
|
|
+ *((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_result[3]) = 0x00000000fff80000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fff80000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000fff80000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fff80000;
|
|
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
|
|
+ *((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_result[3]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff00000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff0000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffff0000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
|
|
+ __m256i_out = __lasx_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000005;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000005;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[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_xvpackod_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpackod_w (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x7fff00017fff0000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fff00017fff0000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fff00017fff0000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff00017fff0000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00007fff00007fff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00007fff00007fff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00007fff00007fff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00007fff00007fff;
|
|
+ __m256i_out = __lasx_xvpackod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickev.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickev.c
|
|
new file mode 100644
|
|
index 000000000..66faa74d0
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickev.c
|
|
@@ -0,0 +1,515 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffff90ffffff81;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffff90ffffff81;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000007f;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000007f;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ff90ff81;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000007f;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ff90ff81;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000007f;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffe81;
|
|
+ *((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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffe81;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000001341c4000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001000310000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000033e87ef1;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000002e2100;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000011c00;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000e8f1;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000103100;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000002e00;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000002a54290;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000002a54290;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000002a54290;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000002a54290;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000004290;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000004290;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000004290;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000004290;
|
|
+ __m256i_out = __lasx_xvpickev_h (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x7ff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
|
|
+ *((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_xvpickev_h (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ 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_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_h (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xbfbfbfbfbfbfbfbf;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xbfbfbfbfbfbfbfbf;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xbfbfbfbfbfbfbfbf;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xbfbfbfbfbfbfbfbf;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xbfbfbfbfbfbfbfbf;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xbfbfbfbfbfbfbfbf;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x0000000000010000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010000;
|
|
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
|
|
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0xa020202020202020;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xa020202020206431;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xa020202020202020;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xa020202020206431;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202031;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202031;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0004040404000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0004040404000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0004040404000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0004040404000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0404000004040000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0404000004040000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ 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_op1[3]) = 0xf800d0d8ffffeecf;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000383fffffdf0d;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xf800d0d8ffffeecf;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000383fffffdf0d;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0001000100010001;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xd0d8eecf383fdf0d;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xd0d8eecf383fdf0d;
|
|
+ __m256i_out = __lasx_xvpickev_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xdf80ff20df80ff20;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xdfc2ff20df80ffa7;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xdf80ff20df80ff20;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xdfc2ff20df80ffa7;
|
|
+ *((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_result[3]) = 0x80208020c22080a7;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x80208020c22080a7;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000040000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000040000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000400;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000400;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ 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_op1[3]) = 0xffe0047d00e00480;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x001fc0200060047a;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffe0047d00e00480;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x001fc0200060047a;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xe07de0801f20607a;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xe07de0801f20607a;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000004;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000004;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000004;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000004;
|
|
+ *((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_result[3]) = 0x0000000400000004;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000400000004;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
|
|
+ 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_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
|
|
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000800080008000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000800080008000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000800080010000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000800080010000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x8000800080008000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x8000800080010000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x8000800080008000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x8000800080010000;
|
|
+ __m256i_out = __lasx_xvpickev_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffeb6839ffffd80;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffe97c020010001;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffeb6839ffffd80;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffe97c020010001;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000001fffffff9;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000001fffffff9;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000001fffffff9;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001fffffff9;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x9ffffd8020010001;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff9fffffff9;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x9ffffd8020010001;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff9fffffff9;
|
|
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000ffff;
|
|
+ __m256i_out = __lasx_xvpickev_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000070002000a;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000070002000a;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x000000060002000a;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000060002000a;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffff80000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffff80000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffff80000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffff80000000;
|
|
+ *((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_result[3]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickev_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickod.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickod.c
|
|
new file mode 100644
|
|
index 000000000..a9778809f
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickod.c
|
|
@@ -0,0 +1,530 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0003f8040002f607;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002728b00000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffff328dfff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x6651bfff00000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0003f8040002f607;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffff328dfff;
|
|
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0080200000802000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0080200000802000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x1e18000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x1e18000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x1e18000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x1e18000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00200020ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x1e0000001e000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00200020ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x1e0000001e000000;
|
|
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
|
|
+ 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_op1[3]) = 0x0080200000802000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0080200000802000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00800080ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00800080ffffffff;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x0004000400040004;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffff8c80;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffe40;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000040004;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_w (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0400040004000400;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0400040004000400;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0400040004000400;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0400040004000400;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0400040004000400;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0400040004000400;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xb70036db12c4007e;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xb7146213fc1e0049;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000fefe02fffe;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xb71c413b199d04b5;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff017e00ff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x017e00ff017e01fe;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff017e00ff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xb70012c4b714fc1e;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00ff017e;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fe02b71c199d;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x017e017e00ff017e;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xc080ffff0049ffd2;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0049ffd2;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000fffeffb9ff9d;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x01620133004b0032;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0002ff80ffb70000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffb7ff80ffd0ffd8;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x00010000002fff9e;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffb5ff80ffd0ffd8;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xc080ffff0049ffd2;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0002ff80ffb70000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000fffeffb9ff9d;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00010000002fff9e;
|
|
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0xbabababababababa;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xbabababababababa;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xbabababababababa;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xbabababababababa;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xbabababababababa;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xbabababababababa;
|
|
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000003f3f3f3c;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xc6c6c6c68787878a;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000003f3f3f3c;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x8787878a00000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00003f3fc6c68787;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00003f3f87870000;
|
|
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007fff003f;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fff003f;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x7fffffff7fffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007fff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x7fffffff7fffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000007fff;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f7f7f7f7f7f7f7;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xf7f7f7f7f7f7f7f7;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f7f7f7f7f7f7f7;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xf7f7f7f7f7f7f7f7;
|
|
+ *((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_result[3]) = 0xf7f7f7f7f7f7f7f7;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xf7f7f7f7f7f7f7f7;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000002467db99;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003e143852;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000002467db99;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003e143852;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000044444443;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x7bbbbbbbf7777778;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000044444443;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x7bbbbbbbf7777778;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000246700003e14;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000044447bbbf777;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000246700003e14;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000044447bbbf777;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000005;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000005;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0006000000040000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0002000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0006000000040000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0002000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0006000000020000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0006000000020000;
|
|
+ __m256i_out = __lasx_xvpickod_w (__m256i_op0, __m256i_op1);
|
|
+ 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]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x007f00ff007f00ff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f00ff007f00ff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x007f00ff007f00ff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f00ff007f00ff;
|
|
+ *((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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_b (__m256i_op0, __m256i_op1);
|
|
+ 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_op1[3]) = 0xbff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xbff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xbff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xbff0000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xbff00000bff00000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xbff00000bff00000;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x9ff87ef07f7f817f;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7f807f007f7f817f;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x9ff87ef07f7f817f;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7f807f007f7f817f;
|
|
+ *((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_result[3]) = 0x9ff87f7f7f807f7f;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x9ff87f7f7f807f7f;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_w (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_w (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000064;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffe98;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000064;
|
|
+ *((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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffe98;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000007f0000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000007f0000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000007f0000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000007f0000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000007f00000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000007f00000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000007f00000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000007f00000000;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ff80;
|
|
+ *((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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_h (__m256i_op0, __m256i_op1);
|
|
+ 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_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickod_d (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x1c1c1c1c1c1c1c1c;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x1c1c1c1c1c1c1c1c;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x1c1c1c1c1c1c1c1c;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x1c1c1c1c1c1c1c1c;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x1c1c1c1c1c1c1c1c;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x1c1c1c1c1c1c1c1c;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvpickod_w (__m256i_op0, __m256i_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve.c
|
|
new file mode 100644
|
|
index 000000000..a2edbb80a
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve.c
|
|
@@ -0,0 +1,130 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x010180068080fff9;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
|
|
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickve_w (__m256i_op0, 0x0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00fe01f000010000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000c40086;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00fe01f000010000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000c40086;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000c40086;
|
|
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x2);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0002000200020002;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xff820002ff820002;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0002000200020002;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xff820002ff820002;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0002000200020002;
|
|
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x3);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x4000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x4000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x4000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x4000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x4000000000000000;
|
|
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x1);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickve_w (__m256i_op0, 0x5);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvpickve_d (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
|
|
+ __m256i_out = __lasx_xvpickve_w (__m256i_op0, 0x3);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffff;
|
|
+ __m256i_out = __lasx_xvpickve_w (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c
|
|
new file mode 100644
|
|
index 000000000..8bd3a8273
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvpickve2gr.c
|
|
@@ -0,0 +1,388 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0cc08723ff900001;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xcc9b89f2f6cef440;
|
|
+ int_result = 0x0000000000000000;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x7);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff80;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
|
|
+ int_result = 0x000000000000ffff;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x6);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff00000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff00000000;
|
|
+ unsigned_long_int_result = 0x0000000000000000;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x3);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ff90ff81;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000007f;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ff90ff81;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000007f;
|
|
+ int_result = 0x000000000000007f;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x4);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
|
|
+ int_result = 0x00000000ffffffff;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefdfffffefd;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
|
|
+ int_result = 0x00000000fffffefd;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x4);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_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;
|
|
+ long_int_result = 0x0000000000000000;
|
|
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x555555553f800000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x5555555580000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x555555553f800000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x5555555580000000;
|
|
+ int_result = 0x0000000055555555;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x5);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
|
|
+ long_int_result = 0x0000000000000000;
|
|
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffe;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0002000400000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffffe;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0002000200020006;
|
|
+ unsigned_int_result = 0x0000000000020006;
|
|
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x0);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x1f0fdf7f3e3b31d4;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff8000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x1f0fdf7f3e3b31d4;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff8000000000000;
|
|
+ long_int_result = 0x1f0fdf7f3e3b31d4;
|
|
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x3);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00fe01fc01fe01fc;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x012c002c001c0006;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00fe01fc01fe0000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x012c002c001c000a;
|
|
+ long_int_result = 0xfe01fc01fe0000;
|
|
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
|
|
+ unsigned_long_int_result = 0x00000000ffffffff;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_out, unsigned_long_int_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;
|
|
+ int_result = 0x0000000000000000;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x0);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x3);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_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;
|
|
+ int_result = 0x0000000000000000;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x5);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0100;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
|
|
+ long_int_result = 0x00000000ffff0100;
|
|
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
|
|
+ int_result = 0x000000007ff00000;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
|
|
+ unsigned_long_int_result = 0x00000000ffffffff;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x0);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000ff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000ff;
|
|
+ int_result = 0x0000000000000000;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x6);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ unsigned_long_int_result = 0xffffffffffffffff;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x5);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffff0100000001;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffff0100000001;
|
|
+ unsigned_int_result = 0x0000000000000000;
|
|
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x7);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff0008;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffff0008;
|
|
+ int_result = 0x0000000000000000;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x6);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_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;
|
|
+ int_result = 0x0000000000000000;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_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;
|
|
+ long_int_result = 0x0000000000000000;
|
|
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x0);
|
|
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_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;
|
|
+ long_int_result = 0x0000000000000000;
|
|
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff00000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff00000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
|
|
+ long_int_result = 0x000000000000ffff;
|
|
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x0);
|
|
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000100010;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0010001000100010;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000100010;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0010001000100010;
|
|
+ unsigned_int_result = 0x0000000000100010;
|
|
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x3);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000100040;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000100040;
|
|
+ unsigned_int_result = 0x0000000000000040;
|
|
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x6);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x3);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_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;
|
|
+ int_result = 0x0000000000000000;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x6);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_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;
|
|
+ long_int_result = 0xffffffffffffffff;
|
|
+ long_int_out = __lasx_xvpickve2gr_d (__m256i_op0, 0x0);
|
|
+ ASSERTEQ_int (__LINE__, long_int_result, long_int_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_int_result = 0x00000000ffffffff;
|
|
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x5);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_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_int_result = 0x00000000ffffffff;
|
|
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x4);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_int_result, unsigned_int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x1);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_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_int_result = 0x0000000000000000;
|
|
+ unsigned_long_int_out = __lasx_xvpickve2gr_du (__m256i_op0, 0x3);
|
|
+ ASSERTEQ_int (__LINE__, unsigned_long_int_result, unsigned_long_int_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;
|
|
+ int_result = 0x0000000000000000;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x0);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_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;
|
|
+ int_result = 0x00000000ffffffff;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffd880;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffd880;
|
|
+ int_result = 0x0000000000000000;
|
|
+ int_out = __lasx_xvpickve2gr_w (__m256i_op0, 0x2);
|
|
+ ASSERTEQ_int (__LINE__, int_result, int_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c
|
|
new file mode 100644
|
|
index 000000000..81456bc1b
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplgr2vr.c
|
|
@@ -0,0 +1,380 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ int_op0 = 0x0000001b3c4c0a5c;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x3c4c0a5c3c4c0a5c;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x3c4c0a5c3c4c0a5c;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x3c4c0a5c3c4c0a5c;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x3c4c0a5c3c4c0a5c;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0x0000000397541c58;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x97541c5897541c58;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x97541c5897541c58;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x97541c5897541c58;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x97541c5897541c58;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 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_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0x0000000000000400;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0400040004000400;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0400040004000400;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0400040004000400;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0400040004000400;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_b (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_b (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0x0000000000000084;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0084008400840084;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0084008400840084;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0084008400840084;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0084008400840084;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0xffffffffffffffff;
|
|
+ *((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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 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_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_b (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0x00000000000000ff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_b (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000020202020;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 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_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 0x0000000000020006;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000020006;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000020006;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000020006;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000020006;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0x00000000000000ff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 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_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_b (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 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_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 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_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0x00000000000000ff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff000000ff;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 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_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 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_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ long_op0 = 0x0000000000020006;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000020006;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000020006;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000020006;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000020006;
|
|
+ __m256i_out = __lasx_xvreplgr2vr_d (long_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 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_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0xffffffffffffffff;
|
|
+ *((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_xvreplgr2vr_h (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ int_op0 = 0xffffffffffffffff;
|
|
+ *((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_xvreplgr2vr_w (int_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve.c
|
|
new file mode 100644
|
|
index 000000000..7aa76c2ba
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve.c
|
|
@@ -0,0 +1,536 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ int_op1 = 0x0000001b3c4c0a5c;
|
|
+ *((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_xvreplve_h (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffefb;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000fe;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffefb;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000fe;
|
|
+ int_op1 = 0x0000000059815d00;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000000fe;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000fe;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000000fe;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000fe;
|
|
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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;
|
|
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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;
|
|
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x555555ab555555ab;
|
|
+ int_op1 = 0x000000000000ffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x555555ab555555ab;
|
|
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ 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]) = 0x0000000000000001;
|
|
+ int_op1 = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
|
|
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000012e2110;
|
|
+ int_op1 = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0202020202020202;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0202020202020202;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x1010101010101010;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x1010101010101010;
|
|
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000000000003f;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000003f;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000000000003f;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000003f;
|
|
+ int_op1 = 0x0000000000000400;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x003f003f003f003f;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x003f003f003f003f;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x003f003f003f003f;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x003f003f003f003f;
|
|
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x003f003f003f003f;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x003f003f003f003f;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x003f003f003f003f;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x003f003f003f003f;
|
|
+ int_op1 = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x003f003f003f003f;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x003f003f003f003f;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x003f003f003f003f;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x003f003f003f003f;
|
|
+ __m256i_out = __lasx_xvreplve_w (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000003f0000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000003f0000;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xe161616161616161;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xe161616161614e60;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xe161616161616161;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xe161616161614e60;
|
|
+ int_op1 = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xe161616161614e60;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xe161616161614e60;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xe161616161614e60;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xe161616161614e60;
|
|
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000080;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000080;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000080;
|
|
+ int_op1 = 0x00000000000000ac;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000080;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000080;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000080;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000080;
|
|
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 0x0000000000000400;
|
|
+ *((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_xvreplve_h (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_h (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00d5007f00ffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00ffffff00ffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00d5007f00ffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00ffffff00ffff;
|
|
+ int_op1 = 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_xvreplve_h (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_d (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_w (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000020202020;
|
|
+ int_op1 = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
|
|
+ __m256i_out = __lasx_xvreplve_w (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffff7fffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffff7fffff;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xbff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xc192181230000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xbff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xc192181230000000;
|
|
+ int_op1 = 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_xvreplve_h (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_h (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_h (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000ff00ff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000ff00ff;
|
|
+ int_op1 = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff00ff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000ff00ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff00ff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000ff00ff;
|
|
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ int_op1 = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x7fef7fef7fef7fef;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x7fef7fef7fef7fef;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x7fef7fef7fef7fef;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x7fef7fef7fef7fef;
|
|
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffff00ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffff00ffffffff;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fe37fe3001d001d;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7fff7fff0000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fe37fe3001d001d;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7fff7fff0000;
|
|
+ int_op1 = 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_xvreplve_h (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f010700c70106;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f010700c70106;
|
|
+ int_op1 = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0106010601060106;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0106010601060106;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0106010601060106;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0106010601060106;
|
|
+ __m256i_out = __lasx_xvreplve_h (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_h (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
|
|
+ int_op1 = 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_xvreplve_w (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_d (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 0x00000000000000ff;
|
|
+ *((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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000003fff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000003fff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000003fff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000003fff;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
|
|
+ int_op1 = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x4040404040404040;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x4040404040404040;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x4040404040404040;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x4040404040404040;
|
|
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001010101;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000404;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001010101;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000404;
|
|
+ int_op1 = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0404040404040404;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0404040404040404;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0404040404040404;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0404040404040404;
|
|
+ __m256i_out = __lasx_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000800080;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000202;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000800080;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000202;
|
|
+ int_op1 = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000202;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000202;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000202;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000202;
|
|
+ __m256i_out = __lasx_xvreplve_d (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 0x000000003ddc5dac;
|
|
+ *((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_xvreplve_d (__m256i_op0, int_op1);
|
|
+ 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;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000200000002;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000200000002;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000200000002;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000200000002;
|
|
+ int_op1 = 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_xvreplve_b (__m256i_op0, int_op1);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c
|
|
new file mode 100644
|
|
index 000000000..a2bc2da52
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplve0.c
|
|
@@ -0,0 +1,471 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffeffffff88;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x61e0000000000001;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffeffffff88;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x61e0000000000001;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
|
|
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff80fe;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xd52aaaaa555555ab;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffff80fe;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xd52aaaaa555555ab;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x555555ab555555ab;
|
|
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
|
|
+ *((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_xvreplve0_b (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000080;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000080;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000080;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x8080808080808080;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x8080808080808080;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x8080808080808080;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x8080808080808080;
|
|
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x3fff3fff3fff3fff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fff3fff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x3fff3fff3fff4000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000403f3fff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x3fff3fff3fff3fff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x3fff3fff3fff3fff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x3fff3fff3fff3fff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x3fff3fff3fff3fff;
|
|
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
|
|
+ *((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_xvreplve0_w (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000001;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000001;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000001;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000001;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000001;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000080000001;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000001;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000001;
|
|
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000020202020;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
|
|
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000003;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[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_xvreplve0_h (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000ff00ff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0007fd00000f02ff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001fffeff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00fe00feff02ff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xff00fe00feff02ff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xff00fe00feff02ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xff00fe00feff02ff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xff00fe00feff02ff;
|
|
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xfc00ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000100fe000100fe;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xfc00ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000100fe000100fe;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00fe00fe00fe00fe;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00fe00fe00fe00fe;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00fe00fe00fe00fe;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00fe00fe00fe00fe;
|
|
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x4040404040404040;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x4040404040404040;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x4040404040404040;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x4040404040404040;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x4040404040404040;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x4040404040404040;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x4040404040404040;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x4040404040404040;
|
|
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000064;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000781;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000064;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000064;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000064;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000064;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000064;
|
|
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffe20001dfe1f;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffe20001dfe1f;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffe20001dfe1f;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffe20001dfe1f;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffe20001dfe1f;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffe20001dfe1f;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffe20001dfe1f;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffe20001dfe1f;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000ff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000ff;
|
|
+ *((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_xvreplve0_b (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffe0047d00e00480;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x001fc0200060047a;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffe0047d00e00480;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x001fc0200060047a;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x047a047a047a047a;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x047a047a047a047a;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x047a047a047a047a;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x047a047a047a047a;
|
|
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x037fe01f001fe020;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x037fe01f001fe020;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x2020202020202020;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x2020202020202020;
|
|
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xff0d0d0d0d0d0d0d;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0d0d0d0d0d0d0d0d;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xff0d0d0d0d0d0d0d;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0d0d0d0d0d0d0d0d;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0d0d0d0d0d0d0d0d;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0d0d0d0d0d0d0d0d;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0d0d0d0d0d0d0d0d;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0d0d0d0d0d0d0d0d;
|
|
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0202010202020102;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0202010202020102;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0202010202020102;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0202010202020102;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0202010202020102;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0202010202020102;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0202010202020102;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0202010202020102;
|
|
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000ff000000ff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00ff00ff00ff00ff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00ff00ff00ff00ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff00ff00ff00ff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00ff00ff00ff00ff;
|
|
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffe00000001;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffe00000001;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffe00000001;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffe00000001;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xfffffffe00000001;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffe00000001;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xfffffffe00000001;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffe00000001;
|
|
+ __m256i_out = __lasx_xvreplve0_d (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000800080008000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x800080ff800080ff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000800080008000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x800080ff800080ff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x800080ff800080ff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x800080ff800080ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x800080ff800080ff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x800080ff800080ff;
|
|
+ __m256i_out = __lasx_xvreplve0_w (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
|
|
+ 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_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvreplve0_q (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff97a2;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffff97a2;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x97a297a297a297a2;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x97a297a297a297a2;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x97a297a297a297a2;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x97a297a297a297a2;
|
|
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
|
|
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_h (__m256i_op0);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvreplve0_b (__m256i_op0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c
|
|
new file mode 100644
|
|
index 000000000..9346f9bfb
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvreplvei.c
|
|
@@ -0,0 +1,20 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ return 0;
|
|
+}
|
|
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c
|
|
new file mode 100644
|
|
index 000000000..c8a00ca89
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf4i_b.c
|
|
@@ -0,0 +1,430 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007ffffffff7ff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x49d8080067f4f81f;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00007f00fffff7ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xd8490849f467f867;
|
|
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0xb7);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0xdb);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0x95);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffb3b4;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffff5ffff4738;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffb3b4;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffff5ffff4738;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0xee);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0x2f);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0x6f);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_b (__m256i_op0, 0x23);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00007ffffffff7ff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x49d8080067f4f81f;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x7fff7fff7ffff7ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x080008000800f81f;
|
|
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0xa8);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xc5c5c5c4c5c5c5c4;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x45c5c5c545c5c5c5;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xc5c5c5c4c5c5c5c4;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x45c5c5c545c5c5c5;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xc5c4c5c5c5c5c5c5;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xc5c545c545c545c5;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xc5c4c5c5c5c5c5c5;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xc5c545c545c545c5;
|
|
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0x3d);
|
|
+ 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_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0xf7);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0x3a);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffff0000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffff0000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff0000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff0000;
|
|
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0xa7);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xff1cff1cff1cff1c;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xff1cff1cff1cff1c;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xff1cff1cff1cff1c;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xff1cff1cff1cff1c;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xff1cff1cff1cff1c;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xff1cff1cff1cff1c;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xff1cff1cff1cff1c;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xff1cff1cff1cff1c;
|
|
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0xdc);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffff0020;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff8001ffff0001;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffff0020;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff8001ffff0001;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffff000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffff8001ffff8001;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffff000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffff8001ffff8001;
|
|
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0x6e);
|
|
+ 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_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0x9f);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0002fffd;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x04f104f104f504ed;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0002fffd;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x04f104f104f504ed;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0002ffff00020002;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x04f504f104f504f5;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0002ffff00020002;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x04f504f104f504f5;
|
|
+ __m256i_out = __lasx_xvshuf4i_h (__m256i_op0, 0x65);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x1e18000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x1e18000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x1e18000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x1e18000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x1e1800001e180000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x1e18000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x1e1800001e180000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x1e18000000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0xfe);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0x64);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xc5c5c5c4c5c5c5c4;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x45c5c5c545c5c5c5;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xc5c5c5c4c5c5c5c4;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x45c5c5c545c5c5c5;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xc5c5c5c4c5c5c5c4;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x45c5c5c545c5c5c5;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xc5c5c5c4c5c5c5c4;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x45c5c5c545c5c5c5;
|
|
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0xb0);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000f9f900;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x79f9f9f900f9f9e0;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000f9f900;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x79f9f9f900f9f900;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00f9f90079f9f9f9;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x79f9f9f900000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00f9f90079f9f9f9;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x79f9f9f900000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0x97);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007aff7c00;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffd017d00;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007aff7c00;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffd017d00;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x7aff7c0000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xfd017d0000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x7aff7c0000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xfd017d0000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0xb3);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xc3f0c3f0c3f0c3f0;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xc3f0c3f0c3f0c3f0;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xc3f0c3f0c3f0c3f0;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xc3f0c3f0c3f0c3f0;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xc3f0c3f0c3f0c3f0;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xc3f0c3f0c3f0c3f0;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xc3f0c3f0c3f0c3f0;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xc3f0c3f0c3f0c3f0;
|
|
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0x3c);
|
|
+ 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_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0xf4);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff81ff7d;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff81ff7d;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xff81ff7dffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff81ff7d;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xff81ff7dffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff81ff7d;
|
|
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0x28);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000002000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000020ff790020;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000002000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000020ff790020;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000002000000020;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000002000000020;
|
|
+ __m256i_out = __lasx_xvshuf4i_w (__m256i_op0, 0xa5);
|
|
+ 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_op1[3]) = 0x0101010183f95466;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x01010101d58efe94;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0101010101010101;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010183f95466;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x01010101d58efe94;
|
|
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0xa7);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0xd9);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x00001fff00001fff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x00001fff00001fff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x00001fff00001fff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00001fff00001fff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x00001fff00001fff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x00001fff00001fff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x00001fff00001fff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x00001fff00001fff;
|
|
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0x5);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff80be0000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000f0f0002;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff80be0000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000f1002;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x80000000ff800000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x80000000ff800000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x80000000ff800000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x80000000ff800000;
|
|
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0xdb);
|
|
+ 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]) = 0x0000000080000009;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x43ef878780000009;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000080000009;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x43ef878780000009;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x43ef878780000009;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x43ef878780000009;
|
|
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0x36);
|
|
+ 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]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
|
|
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0x5a);
|
|
+ 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]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[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_xvshuf4i_d (__m256i_op0, __m256i_op1, 0x5);
|
|
+ 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_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0xd);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff00017fff0000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff00017fff0000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff00017fff0000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff00017fff0000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0002fffd;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x04f104f104f504ed;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0002fffd;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x04f104f104f504ed;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0002fffd;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x04f104f104f504ed;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0002fffd;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x04f104f104f504ed;
|
|
+ __m256i_out = __lasx_xvshuf4i_d (__m256i_op0, __m256i_op1, 0x7e);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
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
|
|
new file mode 100644
|
|
index 000000000..641ea2315
|
|
--- /dev/null
|
|
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvshuf_b.c
|
|
@@ -0,0 +1,761 @@
|
|
+/* { dg-do run } */
|
|
+/* { dg-options "-mlasx -w -fno-strict-aliasing" } */
|
|
+#include "../simd_correctness_check.h"
|
|
+#include <lasxintrin.h>
|
|
+
|
|
+int
|
|
+main ()
|
|
+{
|
|
+ __m256i __m256i_op0, __m256i_op1, __m256i_op2, __m256i_out, __m256i_result;
|
|
+ __m256 __m256_op0, __m256_op1, __m256_op2, __m256_out, __m256_result;
|
|
+ __m256d __m256d_op0, __m256d_op1, __m256d_op2, __m256d_out, __m256d_result;
|
|
+
|
|
+ int int_op0, int_op1, int_op2, int_out, int_result, i = 1, fail;
|
|
+ long int long_op0, long_op1, long_op2, lont_out, lont_result;
|
|
+ long int long_int_out, long_int_result;
|
|
+ unsigned int unsigned_int_out, unsigned_int_result;
|
|
+ unsigned long int unsigned_long_int_out, unsigned_long_int_result;
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000007070707;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0102040000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000020100;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0703020000000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xfe02fe02fee5fe22;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xff49fe4200000000;
|
|
+ *((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_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]) = 0xfffffefefffffefe;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffefefffffcfa;
|
|
+ *((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[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[0]) = 0xfffffff8fc000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xfafafafafafafafa;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xfefefefefefefefe;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000fefefe;
|
|
+ __m256i_out = __lasx_xvshuf_b (__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_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_b (__m256i_op0, __m256i_op1, __m256i_op2);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000600000006;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000600000006;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000600000006;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000600000006;
|
|
+ *((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_b (__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_op1[3]) = 0x7ff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x3ff0010000000000;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[1]) = 0x3ff0010000000000;
|
|
+ *((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_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]) = 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_b (__m256i_op0, __m256i_op1, __m256i_op2);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000ff0000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000ff0000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((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_result[3]) = 0xffff000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
|
|
+ *((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;
|
|
+ __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]) = 0x000000000003ffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000003ffff;
|
|
+ *((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[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __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[0]) = 0x0000000000000101;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x67eee33567eee435;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x67eee33567eee435;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x00000000ffffffff;
|
|
+ *((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[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((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[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[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((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]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
|
|
+ *((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]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xefdfefdf00000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xefdfefdfefdfefdf;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xefdfefdf00000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xefdfefdfefdfefdf;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0xffffffffffffffff;
|
|
+ *((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;
|
|
+ __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_op1[3]) = 0x0000000000000003;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000003;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x7575757575757575;
|
|
+ *((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;
|
|
+ __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]) = 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]) = 0x00000000fffff800;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffff800;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0x00000000fffff800;
|
|
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[0]) = 0x00000000fffff800;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0xf800f800f800f800;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0xf800f800f800f800;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0xf800f800f800f800;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xf800f800f800f800;
|
|
+ __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_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]) = 0x8000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000ffff88ff88;
|
|
+ *((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[1]) = 0xff88ff88ff880000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0xff88ff88ff880000;
|
|
+ __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_op1[3]) = 0x98111cca98111cca;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x98111cca98111cca;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x98111cca98111cca;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x98111cca98111cca;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x000000010000ffe1;
|
|
+ *((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[2]) = 0x0000000101001e18;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000000;
|
|
+ *((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_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]) = 0x0000000000000001;
|
|
+ *((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[2]) = 0x0000000200000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x012e2110012e2110;
|
|
+ __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_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000002a542a;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000002a542a;
|
|
+ *((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_w (__m256i_op0, __m256i_op1, __m256i_op2);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
|
|
+ *((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_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_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_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_op1[3]) = 0x000000007fc00000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000007fc00000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000007fc00000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000007fc00000;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0xdfffffffdfffffff;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0x8000000080000000;
|
|
+ *((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[1]) = 0x8000000080000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000080000000;
|
|
+ __m256i_out = __lasx_xvshuf_w (__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_w (__m256i_op0, __m256i_op1, __m256i_op2);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0001000104000200;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000104000200;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff0000ffff0000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff0000ffff0000;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x0004000400040004;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0x0004000500040005;
|
|
+ *((unsigned long *)&__m256i_op2[1]) = 0x0004000400040004;
|
|
+ *((unsigned long *)&__m256i_op2[0]) = 0x0004000500040005;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0004000500040005;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0004000500040005;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0004000500040005;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0004000500040005;
|
|
+ __m256i_out = __lasx_xvshuf_w (__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]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x555555ab555555ab;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000080008000;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000007fff7fff;
|
|
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000080008000;
|
|
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000007fff7fff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x000000007fff7fff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007fff7fff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000007fff7fff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007fff7fff;
|
|
+ __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]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op2[1]) = 0xffffffffffffffff;
|
|
+ *((unsigned long *)&__m256i_op2[0]) = 0xffffffffffffffff;
|
|
+ *((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_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_op1[3]) = 0x0000800000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000080008001;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000800000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000080008001;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
|
|
+ *((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[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]) = 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]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0008000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0008000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
|
|
+ __m256i_out = __lasx_xvshuf_d (__m256i_op0, __m256i_op1, __m256i_op2);
|
|
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
|
|
+
|
|
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fff80007fff0000;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000008000;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fff80007fff0000;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000008000;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0x8000800080008000;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0x000000ff800000ff;
|
|
+ *((unsigned long *)&__m256i_op2[1]) = 0x8000800080008000;
|
|
+ *((unsigned long *)&__m256i_op2[0]) = 0x000000ff800000ff;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff800000ff;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x000000ff800000ff;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff800000ff;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x000000ff800000ff;
|
|
+ __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]) = 0x0000002000000000;
|
|
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
|
|
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000002000000000;
|
|
+ *((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]) = 0x0000000000000040;
|
|
+ *((unsigned long *)&__m256i_op2[2]) = 0x0000000000080040;
|
|
+ *((unsigned long *)&__m256i_op2[1]) = 0x0000000000000040;
|
|
+ *((unsigned long *)&__m256i_op2[0]) = 0x0000000000080040;
|
|
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000080040;
|
|
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000080040;
|
|
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000080040;
|
|
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000080040;
|
|
+ __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_op1[3]) = 0xfffeb6839ffffd80;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffe97c020010001;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffeb6839ffffd80;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffe97c020010001;
|
|
+ *((unsigned long *)&__m256i_op2[3]) = 0xfffeb6839ffffd80;
|
|
+ *((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;
|
|
+ __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]) = 0x0000000000010001;
|
|
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
|
|
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000010001;
|
|
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
|
|
+ *((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);
|
|
+
|
|
+ return 0;
|
|
+}
|
|
--
|
|
2.33.0
|
|
|