代码拉取完成,页面将自动刷新
同步操作将从 src-openEuler/gcc 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
From bf5805833fc26d26a1fbbdc7dfe10109c0c676f9 Mon Sep 17 00:00:00 2001
From: Xiaolong Chen <[email protected]>
Date: Tue, 12 Sep 2023 15:49:41 +0800
Subject: [PATCH 107/124] LoongArch: Add tests for ASX vector
xvextl/xvsra/xvsran/xvsrarn instructions.
gcc/testsuite/ChangeLog:
* gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-xvsra.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-xvsrai.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-xvsran.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-xvsrani.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-xvsrar.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-xvsrari.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c: New test.
* gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c: New test.
Signed-off-by: Peng Fan <[email protected]>
Signed-off-by: ticat_fp <[email protected]>
---
.../loongarch/vector/lasx/lasx-xvextl-1.c | 86 +++
.../loongarch/vector/lasx/lasx-xvextl-2.c | 163 ++++
.../loongarch/vector/lasx/lasx-xvsra.c | 545 +++++++++++++
.../loongarch/vector/lasx/lasx-xvsrai.c | 504 ++++++++++++
.../loongarch/vector/lasx/lasx-xvsran.c | 455 +++++++++++
.../loongarch/vector/lasx/lasx-xvsrani.c | 545 +++++++++++++
.../loongarch/vector/lasx/lasx-xvsrar.c | 725 ++++++++++++++++++
.../loongarch/vector/lasx/lasx-xvsrari.c | 471 ++++++++++++
.../loongarch/vector/lasx/lasx-xvsrarn.c | 500 ++++++++++++
.../loongarch/vector/lasx/lasx-xvsrarni.c | 636 +++++++++++++++
10 files changed, 4630 insertions(+)
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsra.c
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrai.c
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsran.c
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrani.c
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrar.c
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrari.c
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c
create mode 100644 gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c
new file mode 100644
index 000000000..c0d3e8e75
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-1.c
@@ -0,0 +1,86 @@
+/* { 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;
+ *((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_xvextl_q_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_xvextl_q_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_xvextl_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[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_xvextl_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000201220001011c;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000201220001011c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000201220001011c;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000201220001011c;
+ __m256i_out = __lasx_xvextl_q_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_xvextl_q_d (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c
new file mode 100644
index 000000000..8c7ab4ed3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvextl-2.c
@@ -0,0 +1,163 @@
+/* { 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]) = 0x8000000000000000;
+ *((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]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000001010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000001010101;
+ *((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_xvextl_qu_du (__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]) = 0x0000000100000000;
+ *((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_xvextl_qu_du (__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_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000083f95466;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010100005400;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000083f95466;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010100005400;
+ __m256i_out = __lasx_xvextl_qu_du (__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_xvextl_qu_du (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvextl_qu_du (__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_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvextl_qu_du (__m256i_op0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsra.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsra.c
new file mode 100644
index 000000000..2bf9ae9c3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsra.c
@@ -0,0 +1,545 @@
+/* { 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]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xc5890a0a07070707;
+ *((unsigned long *)&__m256i_op1[2]) = 0x006be0e4180b8024;
+ *((unsigned long *)&__m256i_op1[1]) = 0x1b399540334c966c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x71d7dd7aefcac001;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvsra_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]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000800;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffbf7f7fff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe651bfff;
+ *((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]) = 0xffffffffbf7f7fff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffe651bfff;
+ __m256i_out = __lasx_xvsra_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]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff00000000;
+ *((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_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffe0000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffe0000000;
+ __m256i_out = __lasx_xvsra_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]) = 0xffffffffffffffff;
+ *((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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_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;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800000004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000bf6e0000c916;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000030000fff3;
+ *((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]) = 0x0000000800000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000bf6e0000c916;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000030000fff3;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fff0e400;
+ *((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]) = 0x00000000ffff8c80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fff0e400;
+ __m256i_out = __lasx_xvsra_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_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x9cffffffffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x9cffffffffffffff;
+ *((unsigned long *)&__m256i_op1[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_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x1cfd000000000000;
+ *((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]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1cfd000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfe00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1cfd000000000000;
+ __m256i_out = __lasx_xvsra_d (__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_xvsra_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]) = 0x0000017e007ffe02;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff017e01fe;
+ *((unsigned long *)&__m256i_op1[1]) = 0x017e00ff017e00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff017e01fe;
+ *((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_xvsra_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]) = 0x0000004500f300fb;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000004500f300fb;
+ *((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_xvsra_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_xvsra_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffffffa;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffffa;
+ *((unsigned long *)&__m256i_result[3]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_result[2]) = 0x6161616100000018;
+ *((unsigned long *)&__m256i_result[1]) = 0x6161616161616161;
+ *((unsigned long *)&__m256i_result[0]) = 0x6161616100000018;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000004411;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000004411;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_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_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x007f007f0081007f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x007f007f0081007f;
+ *((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]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_result[2]) = 0x007f007f0081007f;
+ *((unsigned long *)&__m256i_result[1]) = 0x009f00f8007e00f0;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f007f0081007f;
+ __m256i_out = __lasx_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01fe01ae00ff00ff;
+ *((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]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_result[2]) = 0x01fe01ae00ff00ff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00ff010000ff017e;
+ *((unsigned long *)&__m256i_result[0]) = 0x01fe01ae00ff00ff;
+ __m256i_out = __lasx_xvsra_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fe1ffe0ffe1ffe0;
+ *((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]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_result[2]) = 0x7fe1ffe0ffe1ffe0;
+ *((unsigned long *)&__m256i_result[1]) = 0x01ff0020ff1f001f;
+ *((unsigned long *)&__m256i_result[0]) = 0x7fe1ffe0ffe1ffe0;
+ __m256i_out = __lasx_xvsra_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0007000700070007;
+ *((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]) = 0x0007000700070007;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0007000700070007;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0d0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff0d0d0d0d0d0d0d;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0d0d0d0d0d0d0d0d;
+ *((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_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6040190d20227a78;
+ *((unsigned long *)&__m256i_op0[1]) = 0x132feeabd2d33b38;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0004000f00100003;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000400030010000f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000c0300000019a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0c08032100004044;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000265ffa5a6767;
+ *((unsigned long *)&__m256i_result[0]) = 0x0c08032100000000;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvsra_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_xvsra_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]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000020;
+ *((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_xvsra_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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ff88ff88;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ff88ff88;
+ *((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_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f433c78;
+ *((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]) = 0x000000007f433c78;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007f433c78;
+ __m256i_out = __lasx_xvsra_w (__m256i_op0, __m256i_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;
+ *((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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsra_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00feff0100feff01;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00feff0100feff01;
+ *((unsigned long *)&__m256i_op1[3]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff80000000;
+ *((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_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800300000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800300000000;
+ *((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]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff800300000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff801000000010;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff800300000000;
+ __m256i_out = __lasx_xvsra_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]) = 0x7fff000000017fff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fff000000017fff;
+ *((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_xvsra_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000f00000000;
+ *((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]) = 0x0000000f00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsra_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-xvsrai.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrai.c
new file mode 100644
index 000000000..a51be899b
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrai.c
@@ -0,0 +1,504 @@
+/* { 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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00d6c1c830160048;
+ *((unsigned long *)&__m256i_op0[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe3aebaf4df958004;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x006be0e4180b0024;
+ *((unsigned long *)&__m256i_result[1]) = 0x1b39153f334b166b;
+ *((unsigned long *)&__m256i_result[0]) = 0xf1d7dd7aefcac002;
+ __m256i_out = __lasx_xvsrai_h (__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_xvsrai_w (__m256i_op0, 0x9);
+ 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_xvsrai_h (__m256i_op0, 0xf);
+ 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_xvsrai_d (__m256i_op0, 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_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_xvsrai_b (__m256i_op0, 0x0);
+ 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;
+ *((unsigned long *)&__m256i_result[3]) = 0x1555156a1555156a;
+ *((unsigned long *)&__m256i_result[2]) = 0x1555156a1555156a;
+ *((unsigned long *)&__m256i_result[1]) = 0x1555156a1555156a;
+ *((unsigned long *)&__m256i_result[0]) = 0x1555156a1555156a;
+ __m256i_out = __lasx_xvsrai_h (__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_xvsrai_w (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000bea20000e127;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000c0460000721f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000de910000f010;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000006f9;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000000bea20;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000c0460;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000000de910;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x1c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000003f00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000003f00000000;
+ *((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_xvsrai_h (__m256i_op0, 0xd);
+ 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_result[3]) = 0xfffff800fffff800;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffff800fffff800;
+ *((unsigned long *)&__m256i_result[1]) = 0xfffff800fffff800;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffff800fffff800;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x14);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000007f017f01;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000007f017f01;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000007f017f;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000007f017f;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x8);
+ 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_xvsrai_b (__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_xvsrai_d (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x15);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0fffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffd8ffc7ffdaff8a;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffd8ffc7ffdaff8a;
+ *((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_xvsrai_d (__m256i_op0, 0x3f);
+ 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_xvsrai_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0fff01800fff0181;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0fff01800fff0181;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0007ff800007ff80;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0007ff800007ff80;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000000000000;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x7);
+ 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_xvsrai_h (__m256i_op0, 0x7);
+ 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_xvsrai_d (__m256i_op0, 0x23);
+ 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_xvsrai_h (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000f91;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000f91;
+ *((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_xvsrai_w (__m256i_op0, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc03ae000ffff6000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc600000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xff00ff00ffff0000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xff00ff00ffff0000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00000000000000;
+ __m256i_out = __lasx_xvsrai_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xff00ff00ffff0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xff00ff00ffff0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffc03fffffffc0;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffc00000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffc03fffffffc0;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffc00000000000;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0xa);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000007ffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000007ffffffff;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x1c);
+ 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_xvsrai_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+ *((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_xvsrai_b (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000fef0ff0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000fef0ff0;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc008fa01c0090000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3f804000c008f404;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc008fa01c0090000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3f804000c008f404;
+ *((unsigned long *)&__m256i_result[3]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_result[2]) = 0x001fc0200060047a;
+ *((unsigned long *)&__m256i_result[1]) = 0xffe0047d00e00480;
+ *((unsigned long *)&__m256i_result[0]) = 0x001fc0200060047a;
+ __m256i_out = __lasx_xvsrai_d (__m256i_op0, 0x9);
+ 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]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fffe00000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fffe00000000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0xd);
+ 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_xvsrai_w (__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_xvsrai_w (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_result[3]) = 0x1e9e1e9e1e9e1e9e;
+ *((unsigned long *)&__m256i_result[2]) = 0x1e9e1e9e1e9e1e9e;
+ *((unsigned long *)&__m256i_result[1]) = 0x1e9e1e9e1e9e1e9e;
+ *((unsigned long *)&__m256i_result[0]) = 0x1e9e1e9e1e9e1e9e;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000008;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000008;
+ *((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_xvsrai_h (__m256i_op0, 0xf);
+ 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_xvsrai_h (__m256i_op0, 0xe);
+ 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_xvsrai_b (__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_xvsrai_w (__m256i_op0, 0xd);
+ 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_xvsrai_h (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffff800000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffc0000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffc0000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff0000;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001fffe0005fff9;
+ *((unsigned long *)&__m256i_op0[2]) = 0x04f004f204f204f0;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001fffe0005fff9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x04f004f204f204f0;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000900000009;
+ __m256i_out = __lasx_xvsrai_w (__m256i_op0, 0x17);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x761ed60b5d7f0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xdc9938afafe904f1;
+ *((unsigned long *)&__m256i_op0[1]) = 0x761ed60b5d7f0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xdc9938afafe904f1;
+ *((unsigned long *)&__m256i_result[3]) = 0x03b0feb002eb0000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfee401c5fd7f0027;
+ *((unsigned long *)&__m256i_result[1]) = 0x03b0feb002eb0000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfee401c5fd7f0027;
+ __m256i_out = __lasx_xvsrai_h (__m256i_op0, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsran.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsran.c
new file mode 100644
index 000000000..e08934b12
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsran.c
@@ -0,0 +1,455 @@
+/* { 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]) = 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000000;
+ __m256i_out = __lasx_xvsran_h_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_xvsran_w_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]) = 0x7f80780000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7f80780000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000004000;
+ *((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_xvsran_w_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_xvsran_h_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_xvsran_w_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_xvsran_w_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]) = 0x00000013ffffffec;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000013ffffebd8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000013ffffffec;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000013ffffebd8;
+ *((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_xvsran_h_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_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfebdff3eff3dff52;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfebdff3eff3dff52;
+ *((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_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7ffe7ffe7ffe7ffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007ffe7ffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ffe7ffe7ffe8000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000807e7ffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8091811081118110;
+ *((unsigned long *)&__m256i_op1[2]) = 0x80a6802680208015;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8091811081110013;
+ *((unsigned long *)&__m256i_op1[0]) = 0x80a6802680200018;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffefffe0000feff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffeff0000007e7f;
+ __m256i_out = __lasx_xvsran_b_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsran_w_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_xvsran_w_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]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffefffffffe;
+ *((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_xvsran_b_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]) = 0x0000000800000000;
+ *((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_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0000ffff;
+ *((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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvsran_w_d (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsran_h_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]) = 0x0010000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0008000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0010000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0008000000000000;
+ *((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_xvsran_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0001000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000100010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff47b4ffff5879;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000504fffff3271;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff47b4ffff5879;
+ *((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_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff000000000000;
+ __m256i_out = __lasx_xvsran_b_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]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[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_xvsran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000007c8;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000001fe01fe;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000ff0100;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001fe01fe;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000ff0100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000000000c8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000000c8;
+ __m256i_out = __lasx_xvsran_b_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_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000014402080144;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000000e;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000000e;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000000000c;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000440800;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000440800;
+ __m256i_out = __lasx_xvsran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3d3d3d3d3d3d3d3d;
+ *((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]) = 0x3d3d3d3d3d3d3d3d;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x3d3d3d3d3d3d3d3d;
+ __m256i_out = __lasx_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffc01fc01;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000003fc03bbc;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000001010100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000405;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001010100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000405;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfc01fc0101fe01dd;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfc01fc0101fe01dd;
+ __m256i_out = __lasx_xvsran_w_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_xvsran_w_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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[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_xvsran_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000055;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000054;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff0000ffff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff0000ffff0000;
+ __m256i_out = __lasx_xvsran_h_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]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x7fffffff80000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffff80000000;
+ *((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_xvsran_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrani.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrani.c
new file mode 100644
index 000000000..44c20a954
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrani.c
@@ -0,0 +1,545 @@
+/* { 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]) = 0x0000000000000007;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000003ffffffff;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x1d);
+ 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]) = 0xe1e800002f03988d;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xe1e800002f03988d;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xff0f400001781cc4;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xff0f400001781cc4;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x5);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc5c4c5c5c5c5c5c5;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc5c545c545c545c5;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc5c4c5c5c5c5c5c5;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc5c545c545c545c5;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000ff000000f8;
+ *((unsigned long *)&__m256i_op1[2]) = 0xbc8ff0ffffffcff8;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000ff000000f8;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbc8ff0ffffffcff8;
+ *((unsigned long *)&__m256i_result[3]) = 0xfcfcfcfcfc040404;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000fbfffffc;
+ *((unsigned long *)&__m256i_result[1]) = 0xfcfcfcfcfc040404;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fbfffffc;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x14131211100f0e0d;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0c0b0a0908070605;
+ *((unsigned long *)&__m256i_op0[1]) = 0x14131211100f0e0d;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0c0b0a0908070605;
+ *((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]) = 0x0a09080706050403;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0a09080706050403;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fffffefd;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffffefd;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000ffff0000ffff;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0xd);
+ 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]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000080;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x40);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+ *((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_result[3]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000242;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffff0000ffff;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000242;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0707feb608c9328b;
+ *((unsigned long *)&__m256i_op0[2]) = 0xc237bd65fc892985;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0707feb608c9328b;
+ *((unsigned long *)&__m256i_op0[0]) = 0xc237bd65fc892985;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00150015003a402f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x333568ce26dcd055;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00150015003a402f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x333568ce26dcd055;
+ *((unsigned long *)&__m256i_result[3]) = 0x0e0f1192846ff912;
+ *((unsigned long *)&__m256i_result[2]) = 0x002a0074666a4db9;
+ *((unsigned long *)&__m256i_result[1]) = 0x0e0f1192846ff912;
+ *((unsigned long *)&__m256i_result[0]) = 0x002a0074666a4db9;
+ __m256i_out = __lasx_xvsrani_h_w (__m256i_op0, __m256i_op1, 0xf);
+ 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]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffefffffffe;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffdfffffffdff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffdfffffffdff;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x37);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8080808000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8080808000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3f7f7f7eff800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3f7f7f7eff800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000007efeff00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000001010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000007efeff00;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x7);
+ 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]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff3eff3eff3eff3e;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffff3e;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffff3e;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x70);
+ 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]) = 0x0002000200020018;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0002000200020008;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00c0000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0040000000000000;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0xd);
+ 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_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_xvsrani_h_w (__m256i_op0, __m256i_op1, 0xc);
+ 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_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x3);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x1f001f00000007ef;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00001fff200007ef;
+ *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[2]) = 0x000000000f0f0003;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000ff;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000f1003;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x9);
+ 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]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000fc38fc38;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfc00000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fefefe000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fefefe000000;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x9);
+ 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]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x01010101010101c9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x01010101010101c9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010101010101010;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x2c);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x01010101010101c9;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x01010101010101c9;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000781;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[3]) = 0x0008080808080808;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008080808080808;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000000003c;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x45);
+ 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_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x15);
+ 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]) = 0x00f3009500db00ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00f3009500db00ff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00ff00ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000003cc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000003cc0;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x6a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000400100013;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000400100014;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000400100013;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000400000004;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0a0a0a0a00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0a0a000000000a0a;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0a0a0a0a00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000020200000202;
+ *((unsigned long *)&__m256i_result[2]) = 0x4100004141410000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000020200000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x4100004141410000;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000003;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x1e);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000956a00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000956a00000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000080;
+ *((unsigned long *)&__m256i_result[3]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xb500000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x007fffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xb500000000000000;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x29);
+ 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]) = 0x8000000001010100;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8000000000000405;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000000001010100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000405;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffe00000ffe00000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffe00000ffe00000;
+ __m256i_out = __lasx_xvsrani_h_w (__m256i_op0, __m256i_op1, 0x1a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000013;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000013;
+ *((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_xvsrani_w_d (__m256i_op0, __m256i_op1, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+ *((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_xvsrani_w_d (__m256i_op0, __m256i_op1, 0x34);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0808080808080808;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0808080808080808;
+ *((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_xvsrani_b_h (__m256i_op0, __m256i_op1, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000040;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000040;
+ *((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_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x66);
+ 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]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000000ffffffc0;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000ffffffc0;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x9);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffff8000;
+ *((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]) = 0x00000000ffffff80;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffff80;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrani_b_h (__m256i_op0, __m256i_op1, 0x8);
+ 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_xvsrani_h_w (__m256i_op0, __m256i_op1, 0x1a);
+ 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]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+ *((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_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x4);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffce;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffce;
+ *((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_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x6b);
+ 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]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000040e7;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000004000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000040e7;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000200000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000200000000000;
+ __m256i_out = __lasx_xvsrani_d_q (__m256i_op0, __m256i_op1, 0x21);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000900000009;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x3ff9fffa3ff9fffa;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x3ff9fffa3ff9fffa;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000007ff3;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000007ff3;
+ __m256i_out = __lasx_xvsrani_w_d (__m256i_op0, __m256i_op1, 0x2f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrar.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrar.c
new file mode 100644
index 000000000..fb47385c0
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrar.c
@@ -0,0 +1,725 @@
+/* { 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]) = 0x38a966b31be83ee9;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5f6108dc25b80001;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf41a56e8a20878d7;
+ *((unsigned long *)&__m256i_op0[0]) = 0x683b8b67e20c0001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000501e99b;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000109973de7;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000001020f22;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000001890b7a39;
+ *((unsigned long *)&__m256i_result[3]) = 0x38a966b301f41ffd;
+ *((unsigned long *)&__m256i_result[2]) = 0x5f6108ee13ff0000;
+ *((unsigned long *)&__m256i_result[1]) = 0xf41a56e8d10201f6;
+ *((unsigned long *)&__m256i_result[0]) = 0x683b8b34f1020001;
+ __m256i_out = __lasx_xvsrar_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]) = 0x0000000000000707;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000010200000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000002;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000070300000000;
+ *((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_xvsrar_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_xvsrar_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_xvsrar_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]) = 0x7fffffffffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+ *((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_xvsrar_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]) = 0x01480000052801a2;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffdcff64;
+ *((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_xvsrar_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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0001000100010001;
+ *((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]) = 0x0001000100010001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0008000001010000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101000001010000;
+ *((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]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020000020200000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0008000001010000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101000001010000;
+ __m256i_out = __lasx_xvsrar_d (__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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrar_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_xvsrar_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]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0020000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0020000000000000;
+ *((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_xvsrar_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]) = 0xff01ff3400000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000ff83ff01;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_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]) = 0xbabababababababa;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xbabababababababa;
+ *((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_xvsrar_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]) = 0xffffcc8000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff82037dfd0000;
+ *((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_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0101010101010101;
+ __m256i_out = __lasx_xvsrar_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]) = 0x0000000000ff0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000ff0000;
+ *((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_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_op0[2]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_op0[0]) = 0x45baa7ef6a95a985;
+ *((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]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_result[2]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_result[1]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_result[0]) = 0x45baa7ef6a95a985;
+ __m256i_out = __lasx_xvsrar_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]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0707feb60707b7d0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x45baa7ef6a95a985;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000800;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000d0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000d0000;
+ *((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]) = 0x00000000000d0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000000d0000;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8000000000000000;
+ *((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]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x8000000000000000;
+ __m256i_out = __lasx_xvsrar_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_xvsrar_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_xvsrar_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]) = 0x00000000000001dc;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000001dc;
+ *((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_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000001a00;
+ *((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]) = 0x0000000000001a00;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000001a00;
+ __m256i_out = __lasx_xvsrar_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]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[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_xvsrar_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_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff02ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffffffff0100;
+ *((unsigned long *)&__m256i_op0[0]) = 0xff00fefffeff02ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffff0100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffffffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff00000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff00000100;
+ *((unsigned long *)&__m256i_result[0]) = 0xff00feff00000000;
+ __m256i_out = __lasx_xvsrar_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]) = 0x2b2a292827262524;
+ *((unsigned long *)&__m256i_op1[2]) = 0x232221201f1e1d1c;
+ *((unsigned long *)&__m256i_op1[1]) = 0x2b2a292827262524;
+ *((unsigned long *)&__m256i_op1[0]) = 0x232221201f1e1d1c;
+ *((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_xvsrar_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_xvsrar_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_xvsrar_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_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7171717171717171;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8e8e8e8e8f0e8e8e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7171717171717171;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8e8e8e8e8f0e8e8e;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000000000007ffff;
+ *((unsigned long *)&__m256i_result[3]) = 0x7171717171010101;
+ *((unsigned long *)&__m256i_result[2]) = 0x8e8e8e8e8f00ffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x7171717171010101;
+ *((unsigned long *)&__m256i_result[0]) = 0x8e8e8e8e8f00ffff;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000465;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000465;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000465;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000465;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000003;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+ __m256i_out = __lasx_xvsrar_b (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffe05f8102;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffe05f8102;
+ *((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]) = 0xffffffffe05f8102;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffe05f8102;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5fff5fff607f0000;
+ *((unsigned long *)&__m256i_result[3]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00000001607f0000;
+ *((unsigned long *)&__m256i_result[1]) = 0x8000420080000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000001607f0000;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef878780000009;
+ *((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]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_result[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000080000009;
+ *((unsigned long *)&__m256i_result[0]) = 0x43ef878780000009;
+ __m256i_out = __lasx_xvsrar_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_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000000000165a;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0001000100000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00005053000000ff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0001000100000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00005053000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0000ffa3;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff800000000000;
+ *((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]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xffff800000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff800000000000;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x000e000e000e000e;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000e0000000e00;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrar_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_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[2]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x6018000000000cd1;
+ *((unsigned long *)&__m256i_op0[0]) = 0x6040190d00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000800200027;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000800200028;
+ *((unsigned long *)&__m256i_result[3]) = 0x006018000000001a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0060401900000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x006018000000001a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0060401900000000;
+ __m256i_out = __lasx_xvsrar_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_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;
+ *((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]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrar_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfefefefe3f800000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfefefefe3f800000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000040404040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000040404040;
+ __m256i_out = __lasx_xvsrar_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x000000ffffff1dff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff1dffffff1dff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x000000ffffff1dff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff1dffffff1dff;
+ *((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]) = 0xffff1dffffff1dff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffff1dffffff1dff;
+ __m256i_out = __lasx_xvsrar_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]) = 0x0000000000000020;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000020;
+ *((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_xvsrar_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-xvsrari.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrari.c
new file mode 100644
index 000000000..63ba92ead
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrari.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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x81f7f2599f0509c2;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x51136d3c78388916;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffc0fcffffcf83;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000288a00003c1c;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x11);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8b1414140e0e0e0e;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00d6c1c830160048;
+ *((unsigned long *)&__m256i_op0[1]) = 0x36722a7e66972cd6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xe3aebaf4df958004;
+ *((unsigned long *)&__m256i_result[3]) = 0xfffe000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000ffff00010000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0001000100020001;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fffffffffffe;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0xe);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00001f41ffffbf00;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x000000040000fff8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0xb);
+ 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_xvsrari_d (__m256i_op0, 0x2a);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffff6;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffff6;
+ *((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_xvsrari_h (__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_xvsrari_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00007dfd;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00007dfd;
+ *((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_xvsrari_w (__m256i_op0, 0x14);
+ 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_xvsrari_b (__m256i_op0, 0x7);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000009;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000009;
+ *((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_xvsrari_d (__m256i_op0, 0x22);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000907;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000907;
+ *((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_xvsrari_w (__m256i_op0, 0x1f);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fffffffa;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fffffffa;
+ *((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_xvsrari_d (__m256i_op0, 0x2a);
+ 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_xvsrari_w (__m256i_op0, 0x1a);
+ 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_xvsrari_w (__m256i_op0, 0x14);
+ 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_xvsrari_d (__m256i_op0, 0x35);
+ 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]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0x1);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x1);
+ 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;
+ *((unsigned long *)&__m256i_result[3]) = 0x20fc000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x20fc000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_b (__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_xvsrari_b (__m256i_op0, 0x3);
+ 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_xvsrari_w (__m256i_op0, 0xc);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x007f0000007f0000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x007f0000007f0000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x00000003f8000004;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00000003f8000004;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x15);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x43ef878780000009;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x10fbe1e2e0000002;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x10fbe1e2e0000002;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfefefefefefefefe;
+ *((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_xvsrari_b (__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_xvsrari_w (__m256i_op0, 0x10);
+ 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_xvsrari_b (__m256i_op0, 0x7);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x000000007f7f7f80;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000040004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000040004;
+ __m256i_out = __lasx_xvsrari_h (__m256i_op0, 0xd);
+ 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_xvsrari_h (__m256i_op0, 0x9);
+ 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_xvsrari_h (__m256i_op0, 0xf);
+ 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_xvsrari_b (__m256i_op0, 0x4);
+ 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_xvsrari_d (__m256i_op0, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((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_xvsrari_b (__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_xvsrari_w (__m256i_op0, 0x1f);
+ 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_xvsrari_h (__m256i_op0, 0x6);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffff8000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x11);
+ 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_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0x26);
+ 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_xvsrari_w (__m256i_op0, 0x8);
+ 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_xvsrari_b (__m256i_op0, 0x1);
+ 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_result[3]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000400000004000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000400000004000;
+ __m256i_out = __lasx_xvsrari_w (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfffefffefffefffe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfffefffefffefffe;
+ *((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_xvsrari_b (__m256i_op0, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff81007fff0100;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000010000000100;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff81007fff0100;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000008000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0003fffc0803fff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000008000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0003fffc0803fff8;
+ __m256i_out = __lasx_xvsrari_d (__m256i_op0, 0xd);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c
new file mode 100644
index 000000000..c145f7ff3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarn.c
@@ -0,0 +1,500 @@
+/* { 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]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000010000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000010000000000;
+ *((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_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6100000800060005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5ee1c073b800c916;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5ff00007fff9fff3;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0209fefb08140000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003fffc00060000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00080000000cc916;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000000000006fff3;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x6100000800060005;
+ *((unsigned long *)&__m256i_op0[2]) = 0x5ee1c073b800c916;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x5ff00007fff9fff3;
+ *((unsigned long *)&__m256i_op1[3]) = 0x00ffff00ff000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000ffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00080005c073c916;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x000100000007fff3;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ 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_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]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+ __m256i_out = __lasx_xvsrarn_b_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_xvsrarn_b_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]) = 0x00050008000e0010;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0007000800100010;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00050008000e0010;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0007000800100010;
+ *((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_xvsrarn_w_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]) = 0x0000000040404040;
+ *((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_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000002affaa;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff002affaa;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000002affaa;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffd50055;
+ *((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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x002affaa00000000;
+ __m256i_out = __lasx_xvsrarn_w_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_xvsrarn_w_d (__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]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000001f0000001f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000001f0000ffff;
+ *((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_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00007f7f00007f00;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00007f7f00007fff;
+ *((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]) = 0x007f000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x007f00ff00000000;
+ __m256i_out = __lasx_xvsrarn_b_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_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000aaabffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000aaabffff;
+ *((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]) = 0x0000abff0000abff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000abff0000abff;
+ __m256i_out = __lasx_xvsrarn_b_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_xvsrarn_w_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_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0020002000200020;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0020000000200000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000001000000010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000001000000010;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x80000000ff800000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffff800000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffff800000;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000070007000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7000700070007000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x4040403fd03fd040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4040403fd03fd040;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffd03fd040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4040403fd03fd040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001010000010100;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000010000010100;
+ __m256i_out = __lasx_xvsrarn_b_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]) = 0xc800c800c800c800;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8800c800c800c801;
+ *((unsigned long *)&__m256i_op1[1]) = 0xc800c800c800c800;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8800c800c800c801;
+ *((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_xvsrarn_w_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]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000000ff;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000064;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_h_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_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000086000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00040ff288000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000086000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00040ff288000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_op1[2]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_op1[1]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5555555555555555;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000fc300000fc40;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000fc300000fc40;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xc008fa01c0090000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3f804000c008f404;
+ *((unsigned long *)&__m256i_op0[1]) = 0xc008fa01c0090000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3f804000c008f404;
+ *((unsigned long *)&__m256i_op1[3]) = 0x82ff902d83000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f80000082fe0bd9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x82ff902d83000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f80000082fe0bd9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xc0090000c0200060;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xc0090000c0200060;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xf3f3f3f3f3f3f4f3;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xf3f3f3f3f3f3f4f3;
+ *((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]) = 0x00000000f3f3f4f3;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000f3f3f4f3;
+ __m256i_out = __lasx_xvsrarn_w_d (__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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffffffffffff;
+ __m256i_out = __lasx_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000fff8579f;
+ *((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]) = 0x00000000fff8579f;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00000000fff8579f;
+ __m256i_out = __lasx_xvsrarn_w_d (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfefefefe01010101;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfefefefefefefefe;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfefefefe01010101;
+ *((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]) = 0xfefefefe01010101;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfefefefe01010101;
+ __m256i_out = __lasx_xvsrarn_w_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]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4980008068400000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x498000804843ffe0;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4980008068400000;
+ *((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_xvsrarn_h_w (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffff010100000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000810001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000810001;
+ __m256i_out = __lasx_xvsrarn_b_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]) = 0x0101010101010110;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010110;
+ *((unsigned long *)&__m256i_op1[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]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarn_b_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_xvsrarn_b_h (__m256i_op0, __m256i_op1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0004000400040004;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0004000500040005;
+ *((unsigned long *)&__m256i_op1[3]) = 0x8282828282828282;
+ *((unsigned long *)&__m256i_op1[2]) = 0x8768876887688769;
+ *((unsigned long *)&__m256i_op1[1]) = 0x8282828282828282;
+ *((unsigned long *)&__m256i_op1[0]) = 0x8768876887688769;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0001000104000200;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0001000104000200;
+ __m256i_out = __lasx_xvsrarn_h_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-xvsrarni.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c
new file mode 100644
index 000000000..b5c0fca74
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvsrarni.c
@@ -0,0 +1,636 @@
+/* { 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]) = 0x0000000007f007f5;
+ *((unsigned long *)&__m256i_op1[3]) = 0x002e4db200000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x000315ac0000d658;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00735278007cf94c;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003ed8800031b38;
+ *((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_xvsrarni_w_d (__m256i_op0, __m256i_op1, 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_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x3d);
+ 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_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x12);
+ 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]) = 0x8000000080000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffff8fffffff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffff8fc000000;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x25);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7fff7ff77fff7ff7;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000800000008;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7fff7ff77fff7ff7;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000001000010;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000002000000022;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000004;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000002000000022;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000004;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x3e);
+ 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]) = 0x6300000000000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x6300000000000000;
+ *((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_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x22);
+ 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_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0xb);
+ 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]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x5980000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000016600000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000016600000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x16);
+ 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]) = 0xfffffefefffffefe;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffefe00000000;
+ *((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_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x7f);
+ 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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x12);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000002a5429;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000002a5429;
+ *((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]) = 0x0000000000000055;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000055;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0xf);
+ 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_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0xa);
+ 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]) = 0x0000000000000045;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00000000000d0005;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000045;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00000000000d0005;
+ *((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_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x50);
+ 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_xvsrarni_w_d (__m256i_op0, __m256i_op1, 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]) = 0xffffffff00000000;
+ *((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_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x16);
+ 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_xvsrarni_b_h (__m256i_op0, __m256i_op1, 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_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_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x20);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00550f0000550f00;
+ *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_op1[2]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_op1[1]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_op1[0]) = 0xff00ff00ff00ef32;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000015c015c0;
+ *((unsigned long *)&__m256i_result[2]) = 0xc0c0c0cdc0c0c0cd;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xc0c0c0cdc0c0c0cd;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0x2);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[2]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[1]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op0[0]) = 0x001f001f001f001f;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0003030300000300;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0003030300000300;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0003030300000100;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0003030300000100;
+ *((unsigned long *)&__m256i_result[3]) = 0x00f800f800f800f8;
+ *((unsigned long *)&__m256i_result[2]) = 0x0018181800181818;
+ *((unsigned long *)&__m256i_result[1]) = 0x00f800f800f800f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0018181800181818;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x1d);
+ 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]) = 0x43d03bfff827ea21;
+ *((unsigned long *)&__m256i_op1[2]) = 0x43dac1f2a3804ff0;
+ *((unsigned long *)&__m256i_op1[1]) = 0x43d03bfff827e9f9;
+ *((unsigned long *)&__m256i_op1[0]) = 0x43e019c657c7d050;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xe8001411edf9c0f8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xe80014fdf0e3e428;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0x1);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xfff0fff0ff01ff14;
+ *((unsigned long *)&__m256i_op0[2]) = 0xfff0fff0fff10003;
+ *((unsigned long *)&__m256i_op0[1]) = 0xfff0fff0ff01ff14;
+ *((unsigned long *)&__m256i_op0[0]) = 0xfff0fff0fff10003;
+ *((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]) = 0xfefee0e3fefefe00;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0xfefee0e3fefefe00;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x00000000001fffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000001fffff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x00000000001fffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000001fffff;
+ *((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_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x13);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffff040000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffff040000000000;
+ *((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_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x0);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[1]) = 0x3f8000003f800000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x3f8000003f800000;
+ *((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]) = 0x007f0000007f0000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x007f0000007f0000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x27);
+ 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_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x19);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xf7f8f7f8f800f800;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00003f780000ff80;
+ *((unsigned long *)&__m256i_op0[1]) = 0xf7f8f7f80000fff9;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00003f780000ff80;
+ *((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]) = 0x1f001f00000007ef;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x00001fff200007ef;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x23);
+ 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_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7171717171717171;
+ *((unsigned long *)&__m256i_op0[2]) = 0x8e8e8e8e8e8e8e8e;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7171717171717171;
+ *((unsigned long *)&__m256i_op0[0]) = 0x8e8e8e8e8e8e8e8e;
+ *((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]) = 0x01c601c6fe3afe3a;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x01c601c6fe3afe3a;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x16);
+ 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]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_op1[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x00003f3f00003f3f;
+ *((unsigned long *)&__m256i_op1[0]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x00003f3f00004040;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x00003f3f00004040;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 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_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]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+ __m256i_out = __lasx_xvsrarni_h_w (__m256i_op0, __m256i_op1, 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_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_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x17);
+ 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;
+ *((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]) = 0x0000000010211921;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000010211921;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0x3);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[2]) = 0x7ffffffffffffffe;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fffffff7fffffff;
+ *((unsigned long *)&__m256i_op0[0]) = 0x7ffffffffffffffe;
+ *((unsigned long *)&__m256i_op1[3]) = 0x82ff902d83000000;
+ *((unsigned long *)&__m256i_op1[2]) = 0x7f80000082fe0bd9;
+ *((unsigned long *)&__m256i_op1[1]) = 0x82ff902d83000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0x7f80000082fe0bd9;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[2]) = 0xffffffff00000001;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+ *((unsigned long *)&__m256i_result[0]) = 0xffffffff00000001;
+ __m256i_out = __lasx_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0x3f);
+ 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_xvsrarni_w_d (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0x00000000000080ff;
+ *((unsigned long *)&__m256i_op0[1]) = 0x7fff000000000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0x00000000000080ff;
+ *((unsigned long *)&__m256i_op1[3]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[2]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[1]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_op1[0]) = 0xfffffffe00000001;
+ *((unsigned long *)&__m256i_result[3]) = 0x08000000000000f8;
+ *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x08000000000000f8;
+ *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+ __m256i_out = __lasx_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0xc);
+ 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]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[2]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[1]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_op1[0]) = 0x4040404040404040;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0x1010101010101010;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0x1010101010101010;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x3a);
+ 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]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffff8;
+ *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffff8;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0x1d);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[2]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[1]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op0[0]) = 0xffffffff00000000;
+ *((unsigned long *)&__m256i_op1[3]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+ *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_result[3]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_result[2]) = 0x2020000000000000;
+ *((unsigned long *)&__m256i_result[1]) = 0x001fffffffe00000;
+ *((unsigned long *)&__m256i_result[0]) = 0x2020000000000000;
+ __m256i_out = __lasx_xvsrarni_d_q (__m256i_op0, __m256i_op1, 0xb);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ unsigned_int_out = __lasx_xvpickve2gr_wu (__m256i_op0, 0x4);
+ *((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]) = 0xffffffffffff8000;
+ *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+ *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffff8000;
+ *((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_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x10);
+ 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_xvsrarni_b_h (__m256i_op0, __m256i_op1, 0xf);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ *((unsigned long *)&__m256i_op0[3]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_op0[2]) = 0x03acfc5303260e81;
+ *((unsigned long *)&__m256i_op0[1]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_op0[0]) = 0x03acfc5303260e81;
+ *((unsigned long *)&__m256i_op1[3]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_op1[2]) = 0x03acfc5303260e81;
+ *((unsigned long *)&__m256i_op1[1]) = 0x03af03af03af03af;
+ *((unsigned long *)&__m256i_op1[0]) = 0x03acfc5303260e81;
+ *((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_xvsrarni_h_w (__m256i_op0, __m256i_op1, 0x1b);
+ ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+ return 0;
+}
--
2.33.0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。