public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc r14-3954] LoongArch: Add tests for ASX vector xvmul/xvmod/xvdiv instructions.
@ 2023-09-14  0:46 LuluCheng
  0 siblings, 0 replies; only message in thread
From: LuluCheng @ 2023-09-14  0:46 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:5f23cd20cfe6b7eee8715c64423e3380c052852c

commit r14-3954-g5f23cd20cfe6b7eee8715c64423e3380c052852c
Author: Xiaolong Chen <chenxiaolong@loongson.cn>
Date:   Tue Sep 12 15:23:35 2023 +0800

    LoongArch: Add tests for ASX vector xvmul/xvmod/xvdiv instructions.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/loongarch/vector/lasx/lasx-xvdiv-1.c: New test.
            * gcc.target/loongarch/vector/lasx/lasx-xvdiv-2.c: New test.
            * gcc.target/loongarch/vector/lasx/lasx-xvmod-1.c: New test.
            * gcc.target/loongarch/vector/lasx/lasx-xvmod-2.c: New test.
            * gcc.target/loongarch/vector/lasx/lasx-xvmul.c: New test.
            * gcc.target/loongarch/vector/lasx/lasx-xvmulwev-1.c: New test.
            * gcc.target/loongarch/vector/lasx/lasx-xvmulwev-2.c: New test.
            * gcc.target/loongarch/vector/lasx/lasx-xvmulwev-3.c: New test.
            * gcc.target/loongarch/vector/lasx/lasx-xvmulwod-1.c: New test.
            * gcc.target/loongarch/vector/lasx/lasx-xvmulwod-2.c: New test.
            * gcc.target/loongarch/vector/lasx/lasx-xvmulwod-3.c: New test.

Diff:
---
 .../loongarch/vector/lasx/lasx-xvdiv-1.c           | 485 ++++++++++++++++
 .../loongarch/vector/lasx/lasx-xvdiv-2.c           | 500 +++++++++++++++++
 .../loongarch/vector/lasx/lasx-xvmod-1.c           | 395 +++++++++++++
 .../loongarch/vector/lasx/lasx-xvmod-2.c           | 410 ++++++++++++++
 .../gcc.target/loongarch/vector/lasx/lasx-xvmul.c  | 620 +++++++++++++++++++++
 .../loongarch/vector/lasx/lasx-xvmulwev-1.c        | 590 ++++++++++++++++++++
 .../loongarch/vector/lasx/lasx-xvmulwev-2.c        | 590 ++++++++++++++++++++
 .../loongarch/vector/lasx/lasx-xvmulwev-3.c        | 605 ++++++++++++++++++++
 .../loongarch/vector/lasx/lasx-xvmulwod-1.c        | 545 ++++++++++++++++++
 .../loongarch/vector/lasx/lasx-xvmulwod-2.c        | 470 ++++++++++++++++
 .../loongarch/vector/lasx/lasx-xvmulwod-3.c        | 440 +++++++++++++++
 11 files changed, 5650 insertions(+)

diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvdiv-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvdiv-1.c
new file mode 100644
index 000000000000..0d7c677039b7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvdiv-1.c
@@ -0,0 +1,485 @@
+/* { 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_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_xvdiv_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00080000000cc916;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x000000000006fff3;
+  *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffffffefffffefc;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x00f8000000f41bfb;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000fa0106;
+  __m256i_out = __lasx_xvdiv_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]) = 0x0101010101010101;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0101010101010101;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0101010101010101;
+  *((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_xvdiv_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000200000002;
+  *((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]) = 0x000000fe000000fe;
+  *((unsigned long *)&__m256i_result[2]) = 0x000000fe000000fe;
+  *((unsigned long *)&__m256i_result[1]) = 0x000000fe000000fe;
+  *((unsigned long *)&__m256i_result[0]) = 0x000000fe000000fe;
+  __m256i_out = __lasx_xvdiv_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]) = 0x01fe01fe01fe01fe;
+  *((unsigned long *)&__m256i_op1[2]) = 0x01fe01fe01fe01fe;
+  *((unsigned long *)&__m256i_op1[1]) = 0x01fe01fe01fe01fe;
+  *((unsigned long *)&__m256i_op1[0]) = 0x01fe01fe01fe01fe;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x01fe8001b72e0001;
+  *((unsigned long *)&__m256i_op0[2]) = 0xb72e8001b72eaf12;
+  *((unsigned long *)&__m256i_op0[1]) = 0x01fe000247639d9c;
+  *((unsigned long *)&__m256i_op0[0]) = 0xb5308001b72eaf12;
+  *((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]) = 0x0002ff80ffb70000;
+  *((unsigned long *)&__m256i_result[2]) = 0xffb7ff80ffd0ffd8;
+  *((unsigned long *)&__m256i_result[1]) = 0x00010000002fff9e;
+  *((unsigned long *)&__m256i_result[0]) = 0xffb5ff80ffd0ffd8;
+  __m256i_out = __lasx_xvdiv_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x8091811081118110;
+  *((unsigned long *)&__m256i_op0[2]) = 0x80a6802680208015;
+  *((unsigned long *)&__m256i_op0[1]) = 0x8091811081110013;
+  *((unsigned long *)&__m256i_op0[0]) = 0x80a6802680200018;
+  *((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]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+  __m256i_out = __lasx_xvdiv_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xe07de0801f20607a;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xe07de0801f20607a;
+  *((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]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_result[2]) = 0x1f831f80e0e09f86;
+  *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_result[0]) = 0x1f831f80e0e09f86;
+  __m256i_out = __lasx_xvdiv_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]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_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]) = 0xdededededededede;
+  *((unsigned long *)&__m256i_op1[2]) = 0xdededededededede;
+  *((unsigned long *)&__m256i_op1[1]) = 0xdededededededede;
+  *((unsigned long *)&__m256i_op1[0]) = 0xdededededededede;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_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]) = 0xffffffa080000001;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffe080000001;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffa080000001;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffe080000001;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_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]) = 0x0010002000100020;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0010002000100020;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0010002000100020;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0010002000100020;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000ff00ff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000fd00ffff02ff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000001fffeff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xff00fe00feff02ff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0001fffe0000ffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0001fffe00010001;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0001fffe0000ffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0001fffe00010001;
+  *((unsigned long *)&__m256i_result[3]) = 0x00000000000000ff;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000200;
+  *((unsigned long *)&__m256i_result[0]) = 0xffffff81ffffff00;
+  __m256i_out = __lasx_xvdiv_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000100;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000100;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000100;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000100;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffff0000ffff0001;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffff0000ffff0001;
+  *((unsigned long *)&__m256i_result[3]) = 0x00000000ffffff00;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x00000000ffffff00;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffff0000000f;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffffffff0000000d;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffff0000000f;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffffff0000000d;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffff0000000f;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffff0000000d;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffff0000000f;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffff0000000d;
+  *((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_xvdiv_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]) = 0x0005000500050005;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0005000500050005;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0005000500050005;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0005000500050005;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_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]) = 0x00ff00ff00000007;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00000000000000e7;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00000007;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000007;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfff9fffffffbffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xfffdaaaaffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfff9fffffffbffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfffdaaaaffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x3f2c678e38d1104c;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x3f2c678e38d1104c;
+  *((unsigned long *)&__m256i_op1[0]) = 0x7ff0000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_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]) = 0xfff9fffffffbffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffdaaaaffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfff9fffffffbffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffdaaaaffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x000000d000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x000000d000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000583800;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000100000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000583800;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000100000;
+  *((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_xvdiv_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op1[2]) = 0x2020202020206431;
+  *((unsigned long *)&__m256i_op1[1]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op1[0]) = 0x2020202020206431;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_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]) = 0xfffffffe00000002;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffffffe00000002;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffffe00000002;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffffffe00000002;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_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]) = 0xfffffff30000000b;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffffff3fffffff3;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffff30000000b;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffffff3fffffff3;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_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]) = 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_xvdiv_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000007fef;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000007fef;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000007fef;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000007fef;
+  __m256i_out = __lasx_xvdiv_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x000000000000ffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x000000000000ffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x000000000000ffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x000000000000ffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+  __m256i_out = __lasx_xvdiv_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]) = 0x0000000008050501;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0100000100000001;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000008050501;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0100000100000001;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x4000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x4000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x4000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x4000000000000000;
+  *((unsigned long *)&__m256i_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]) = 0x000000000000003f;
+  *((unsigned long *)&__m256i_result[2]) = 0x000000000000003f;
+  *((unsigned long *)&__m256i_result[1]) = 0x000000000000003f;
+  *((unsigned long *)&__m256i_result[0]) = 0x000000000000003f;
+  __m256i_out = __lasx_xvdiv_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]) = 0x0000000000000002;
+  *((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_xvdiv_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000002;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000002;
+  *((unsigned long *)&__m256i_op1[3]) = 0x001fffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x001fffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffffffe;
+  __m256i_out = __lasx_xvdiv_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-xvdiv-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvdiv-2.c
new file mode 100644
index 000000000000..fd8b6d38cf87
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvdiv-2.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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x000000000000017e;
+  *((unsigned long *)&__m256i_op0[2]) = 0x000000000000017e;
+  *((unsigned long *)&__m256i_op0[1]) = 0x000000000000017e;
+  *((unsigned long *)&__m256i_op0[0]) = 0x000000000000017e;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0202020202020202;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0202810102020202;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0202020202020202;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0202810102020202;
+  *((unsigned long *)&__m256i_result[3]) = 0x000000000000003f;
+  *((unsigned long *)&__m256i_result[2]) = 0x000000000000003f;
+  *((unsigned long *)&__m256i_result[1]) = 0x000000000000003f;
+  *((unsigned long *)&__m256i_result[0]) = 0x000000000000003f;
+  __m256i_out = __lasx_xvdiv_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000483800;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffba0c05;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000483800;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffba0c05;
+  *((unsigned long *)&__m256i_op1[3]) = 0x5353535353535353;
+  *((unsigned long *)&__m256i_op1[2]) = 0x5353535353535353;
+  *((unsigned long *)&__m256i_op1[1]) = 0x5353535353535353;
+  *((unsigned long *)&__m256i_op1[0]) = 0x5353535353535353;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0303030303020000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0303030303020000;
+  __m256i_out = __lasx_xvdiv_bu (__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]) = 0xfffdfffdfffdfffd;
+  *((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]) = 0x0101010101010101;
+  *((unsigned long *)&__m256i_result[2]) = 0x0101010101010101;
+  *((unsigned long *)&__m256i_result[1]) = 0x0101010101010101;
+  *((unsigned long *)&__m256i_result[0]) = 0x0100010001000100;
+  __m256i_out = __lasx_xvdiv_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00000000000030b8;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00000000000030b8;
+  *((unsigned long *)&__m256i_op1[3]) = 0x9fe7fffffffff32e;
+  *((unsigned long *)&__m256i_op1[2]) = 0x6040190ddfdd8587;
+  *((unsigned long *)&__m256i_op1[1]) = 0xecd011542d2cc4c7;
+  *((unsigned long *)&__m256i_op1[0]) = 0x6040190dffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_bu (__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]) = 0x0202010202020102;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0202010202020102;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0202010202020102;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0202010202020102;
+  *((unsigned long *)&__m256i_result[3]) = 0x7f7fff7f7f7fff7f;
+  *((unsigned long *)&__m256i_result[2]) = 0x7f7fff7f7f7fff7f;
+  *((unsigned long *)&__m256i_result[1]) = 0x7f7fff7f7f7fff7f;
+  *((unsigned long *)&__m256i_result[0]) = 0x7f7fff7f7f7fff7f;
+  __m256i_out = __lasx_xvdiv_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffff97a2;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffff97a2;
+  *((unsigned long *)&__m256i_op1[3]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000001010000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000001010000;
+  __m256i_out = __lasx_xvdiv_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000007fee;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000007fee;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000007fee;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000007fee;
+  *((unsigned long *)&__m256i_op1[3]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+  *((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_xvdiv_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ff00;
+  *((unsigned long *)&__m256i_op0[2]) = 0xe2e2e202ffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x000000000000ff00;
+  *((unsigned long *)&__m256i_op0[0]) = 0xe2e2e202ffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffc6ffc6003a003a;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffc6ffc6003a003a;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000465;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000010001;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000465;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000010001;
+  __m256i_out = __lasx_xvdiv_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfffeb6839ffffd80;
+  *((unsigned long *)&__m256i_op0[2]) = 0xfffe97c020010001;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfffeb6839ffffd80;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfffe97c020010001;
+  *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffffffff8;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffffffffffffff8;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffffff8;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffffffffffffff8;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000200;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000200;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000200;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000200;
+  *((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_xvdiv_hu (__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]) = 0x0101010202020203;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0101010201010102;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0101010202020203;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0101010201010102;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_hu (__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]) = 0x00020001ffb6ffe0;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0049004200000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ff80;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000468600007f79;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffff0000ffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000f3280000dfff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffb7;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000004c00000000;
+  __m256i_out = __lasx_xvdiv_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x7f7f7f7f7f7f7f7f;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x7f7f7f7f7f7f7f7f;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0020002000200020;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0020002000200020;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0020002000200020;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0020002000200020;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x000003fb000003fb;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x000003fb000003fb;
+  __m256i_out = __lasx_xvdiv_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x1fe01e0100000001;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op0[1]) = 0x1fe01e0100000001;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op1[3]) = 0x1fe01e0100000001;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op1[1]) = 0x1fe01e0100000001;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000001;
+  *((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_xvdiv_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00000000ff827f80;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000ffff0226823c;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00000000ff827f80;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000ffff0226823c;
+  *((unsigned long *)&__m256i_op1[3]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op1[2]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op1[1]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op1[0]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000007;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000007;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_wu (__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]) = 0x007d003e007d003e;
+  *((unsigned long *)&__m256i_op1[2]) = 0x007d003effa80010;
+  *((unsigned long *)&__m256i_op1[1]) = 0x007d003e007d003e;
+  *((unsigned long *)&__m256i_op1[0]) = 0x007d003effa80010;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_wu (__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]) = 0xf800f800f800f800;
+  *((unsigned long *)&__m256i_op1[2]) = 0xf800f800f800f800;
+  *((unsigned long *)&__m256i_op1[1]) = 0xf800f800f800f800;
+  *((unsigned long *)&__m256i_op1[0]) = 0xf800f800f800f800;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_wu (__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]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000100000001;
+  __m256i_out = __lasx_xvdiv_wu (__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]) = 0x0100010001000100;
+  *((unsigned long *)&__m256i_op1[2]) = 0x01ffff4300ffff00;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0100010001000100;
+  *((unsigned long *)&__m256i_op1[0]) = 0x01ffff4300ffff00;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000008000000100;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000008000000100;
+  __m256i_out = __lasx_xvdiv_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x7fff80007fff0000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000008000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x7fff80007fff0000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000008000;
+  *((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]) = 0x000000007fff0000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000008000;
+  *((unsigned long *)&__m256i_result[1]) = 0x000000007fff0000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000008000;
+  __m256i_out = __lasx_xvdiv_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x6300000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x6300000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((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_xvdiv_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0001000000010000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0001000000010000;
+  *((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]) = 0x0000000013b13380;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000013b13380;
+  __m256i_out = __lasx_xvdiv_du (__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]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op1[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_xvdiv_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000e2e20000e2e2;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00011d1c00011d9c;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000e2e20000e2e2;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00011d1c00011d9c;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000e2e20000e2e2;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00011d1c00011d9c;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000e2e20000e2e2;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00011d1c00011d9c;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+  __m256i_out = __lasx_xvdiv_du (__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]) = 0x232221201f1e1d1c;
+  *((unsigned long *)&__m256i_op1[2]) = 0x1b1a191817161514;
+  *((unsigned long *)&__m256i_op1[1]) = 0x232221201f1e1d1c;
+  *((unsigned long *)&__m256i_op1[0]) = 0x1b1a191817161514;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000010100000101;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000010100000101;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000101;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000101;
+  __m256i_out = __lasx_xvdiv_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0101010202020203;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0101010201010102;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0101010202020203;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0101010201010102;
+  *((unsigned long *)&__m256i_op1[3]) = 0xfffffff0fffffff0;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffffff0fffffff0;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffff0fffffff0;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffffff0fffffff0;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvdiv_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmod-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmod-1.c
new file mode 100644
index 000000000000..6f34f6ffcbc7
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmod-1.c
@@ -0,0 +1,395 @@
+/* { 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]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((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_xvmod_b (__m256i_op0, __m256i_op1);
+  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_op1[3]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0xff00000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0xff00000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0xff00000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0xff00000000000000;
+  __m256i_out = __lasx_xvmod_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]) = 0xfff6fff6fff6fff6;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfff6fff6fff6fff6;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfff6fff6fff6fff6;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfff6fff6fff6fff6;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x8001b72e0001b72e;
+  *((unsigned long *)&__m256i_op0[2]) = 0x8001b72eaf12d5f0;
+  *((unsigned long *)&__m256i_op0[1]) = 0x000247639d9cb530;
+  *((unsigned long *)&__m256i_op0[0]) = 0x8001b72eaf12d5f0;
+  *((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]) = 0xff81ffe50001ffe5;
+  *((unsigned long *)&__m256i_result[2]) = 0xff81ffe5ffa6ffc6;
+  *((unsigned long *)&__m256i_result[1]) = 0x000200aafe9affe5;
+  *((unsigned long *)&__m256i_result[0]) = 0xff81ffe5ffa6ffc6;
+  __m256i_out = __lasx_xvmod_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_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]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op1[2]) = 0x2020202020206431;
+  *((unsigned long *)&__m256i_op1[1]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op1[0]) = 0x2020202020206431;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_op0[2]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfffffffffffffffe;
+  *((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_xvmod_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]) = 0x07efefefefefefee;
+  *((unsigned long *)&__m256i_op1[2]) = 0x07efefefefefefee;
+  *((unsigned long *)&__m256i_op1[1]) = 0x07efefefefefefee;
+  *((unsigned long *)&__m256i_op1[0]) = 0x07efefefefefefee;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x80008000b70fb810;
+  *((unsigned long *)&__m256i_op0[2]) = 0x3c0f3c0f3911b910;
+  *((unsigned long *)&__m256i_op0[1]) = 0x80008000b70fb810;
+  *((unsigned long *)&__m256i_op0[0]) = 0x3c0f3c0f3911b910;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x00000000ffff6f20;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000781e0000f221;
+  *((unsigned long *)&__m256i_result[1]) = 0x00000000ffff6f20;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000781e0000f221;
+  __m256i_out = __lasx_xvmod_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_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]) = 0x0000ffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000ffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_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]) = 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_xvmod_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0101000101010001;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0101000101010001;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0101000101010001;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0101000101010001;
+  *((unsigned long *)&__m256i_op1[3]) = 0x7fe36364661af18f;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7fe363637fe36363;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7fe36364661af18f;
+  *((unsigned long *)&__m256i_op1[0]) = 0x7fe363637fe36363;
+  *((unsigned long *)&__m256i_result[3]) = 0x0101000101010001;
+  *((unsigned long *)&__m256i_result[2]) = 0x0101000101010001;
+  *((unsigned long *)&__m256i_result[1]) = 0x0101000101010001;
+  *((unsigned long *)&__m256i_result[0]) = 0x0101000101010001;
+  __m256i_out = __lasx_xvmod_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]) = 0xff800000ff800000;
+  *((unsigned long *)&__m256i_op1[2]) = 0xc3030000ff800000;
+  *((unsigned long *)&__m256i_op1[1]) = 0xff800000ff800000;
+  *((unsigned long *)&__m256i_op1[0]) = 0xc3030000ff800000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_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]) = 0x41dffbffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffff00ff800000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x41dffbffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffff00ff800000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0001010101010101;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000010100;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0001000001000100;
+  *((unsigned long *)&__m256i_op1[3]) = 0x8000800000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000800080000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0xc9d8080067f50020;
+  *((unsigned long *)&__m256i_op1[0]) = 0xc70000020000c000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0001010101010101;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000010100;
+  *((unsigned long *)&__m256i_result[0]) = 0x0001000001000100;
+  __m256i_out = __lasx_xvmod_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]) = 0xff3cff3cff3cff3c;
+  *((unsigned long *)&__m256i_op1[2]) = 0xff3cff3cff3cff3c;
+  *((unsigned long *)&__m256i_op1[1]) = 0xff3cff3cff3cff3c;
+  *((unsigned long *)&__m256i_op1[0]) = 0xff3cff3cff3cff3c;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x1c1b1a191c1b1a19;
+  *((unsigned long *)&__m256i_op1[2]) = 0x1c1b1a191c1b1a19;
+  *((unsigned long *)&__m256i_op1[1]) = 0x1c1b1a191c1b1a19;
+  *((unsigned long *)&__m256i_op1[0]) = 0x1c1b1a191c1b1a19;
+  *((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_xvmod_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]) = 0x0000001400000014;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000001400000014;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000001400000014;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000001400000014;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x7c007c007c007c00;
+  *((unsigned long *)&__m256i_op0[2]) = 0x7c007c007c007c00;
+  *((unsigned long *)&__m256i_op0[1]) = 0x7c007c007c007c00;
+  *((unsigned long *)&__m256i_op0[0]) = 0x7c007c007c007c00;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000001010000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x000000007efeff00;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000001010000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x000000007efeff00;
+  *((unsigned long *)&__m256i_result[3]) = 0x00000000008e7c00;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000067751500;
+  *((unsigned long *)&__m256i_result[1]) = 0x00000000008e7c00;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000067751500;
+  __m256i_out = __lasx_xvmod_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffefffef00000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffefffefffefffef;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffefffef00000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffefffefffefffef;
+  *((unsigned long *)&__m256i_op1[3]) = 0xff00ff0000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0xff00ff00ff00ff00;
+  *((unsigned long *)&__m256i_op1[1]) = 0xff00ff0000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0xff00ff00ff00ff00;
+  *((unsigned long *)&__m256i_result[3]) = 0xffefffef00000000;
+  *((unsigned long *)&__m256i_result[2]) = 0xffefffefffefffef;
+  *((unsigned long *)&__m256i_result[1]) = 0xffefffef00000000;
+  *((unsigned long *)&__m256i_result[0]) = 0xffefffefffefffef;
+  __m256i_out = __lasx_xvmod_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]) = 0x00fe00fe00fe00fe;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00fe00fe00fe00fe;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00fe00fe00fe00fe;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00fe00fe00fe00fe;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xc848c848c848c848;
+  *((unsigned long *)&__m256i_op0[2]) = 0x8848c848c848c848;
+  *((unsigned long *)&__m256i_op0[1]) = 0xc848c848c848c848;
+  *((unsigned long *)&__m256i_op0[0]) = 0x8848c848c848c848;
+  *((unsigned long *)&__m256i_op1[3]) = 0xc848c848c848c848;
+  *((unsigned long *)&__m256i_op1[2]) = 0x8848c848c848c848;
+  *((unsigned long *)&__m256i_op1[1]) = 0xc848c848c848c848;
+  *((unsigned long *)&__m256i_op1[0]) = 0x8848c848c848c848;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_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]) = 0x0001000e0001000e;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0001000e0001000e;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0001000e0001000e;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0001000e0001000e;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_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-xvmod-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmod-2.c
new file mode 100644
index 000000000000..d0a9e9d2fed4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmod-2.c
@@ -0,0 +1,410 @@
+/* { 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]) = 0x1e18000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x1e18000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x1e18000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x1e18000000000000;
+  *((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]) = 0x1e18000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x1e18000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x1e18000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x1e18000000000000;
+  __m256i_out = __lasx_xvmod_bu (__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]) = 0x0909090909090909;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0909090909090909;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0909090909090909;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0909090909090909;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_bu (__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]) = 0x0a0a0a0a7f0a0a0a;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0a0a0a0a7f0a0a0a;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0a0a0a0a7f0a0a0a;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0a0a0a0a7f0a0a0a;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_bu (__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]) = 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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000200000002;
+  *((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]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000200000002;
+  __m256i_out = __lasx_xvmod_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_hu (__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]) = 0x0005000500050005;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0005000500050005;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0005000500050005;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0005000500050005;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffe000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffe000;
+  *((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]) = 0x000000000000e000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x000000000000e000;
+  __m256i_out = __lasx_xvmod_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x9ff87ef07f7f817f;
+  *((unsigned long *)&__m256i_op0[2]) = 0x7f807f007f7f817f;
+  *((unsigned long *)&__m256i_op0[1]) = 0x9ff87ef07f7f817f;
+  *((unsigned long *)&__m256i_op0[0]) = 0x7f807f007f7f817f;
+  *((unsigned long *)&__m256i_op1[3]) = 0x9ff87ef07f7f817f;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7f807f007f7f817f;
+  *((unsigned long *)&__m256i_op1[1]) = 0x9ff87ef07f7f817f;
+  *((unsigned long *)&__m256i_op1[0]) = 0x7f807f007f7f817f;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffffffffe06df8d7;
+  *((unsigned long *)&__m256i_op0[1]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffffffbe8b470f;
+  *((unsigned long *)&__m256i_op1[3]) = 0x7ffffffffffff7ff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffe06df0d7;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7ffffffffffff7ff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffbe8b470f;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000800;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000800;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000800;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfff9fff9fff9fff9;
+  *((unsigned long *)&__m256i_op0[2]) = 0xfff90000fff9fff9;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfff9fff9fff9fff9;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfff90000fff9fff9;
+  *((unsigned long *)&__m256i_op1[3]) = 0x108659e46485f7e1;
+  *((unsigned long *)&__m256i_op1[2]) = 0x4df5b1a3ed5e02c1;
+  *((unsigned long *)&__m256i_op1[1]) = 0x108659e46485f7e1;
+  *((unsigned long *)&__m256i_op1[0]) = 0x4df5b1a3ed5e02c1;
+  *((unsigned long *)&__m256i_result[3]) = 0x081abb9d36ee1037;
+  *((unsigned long *)&__m256i_result[2]) = 0x1617eb17129bfd38;
+  *((unsigned long *)&__m256i_result[1]) = 0x081abb9d36ee1037;
+  *((unsigned long *)&__m256i_result[0]) = 0x1617eb17129bfd38;
+  __m256i_out = __lasx_xvmod_wu (__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]) = 0xfffefffefffefffe;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffefffefffefffe;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffefffefffefffe;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffefffefffefffe;
+  *((unsigned long *)&__m256i_result[3]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_result[2]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_result[1]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_result[0]) = 0x0001000100010001;
+  __m256i_out = __lasx_xvmod_wu (__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]) = 0xfefefefefefefefe;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfe8bfe0efe8bfe12;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfefefefefefefefe;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfe8bfe0efe8bfe12;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_wu (__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]) = 0x7171717171717171;
+  *((unsigned long *)&__m256i_op1[2]) = 0x8e8e8e8e8e8e8e8e;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7171717171717171;
+  *((unsigned long *)&__m256i_op1[0]) = 0x8e8e8e8e8e8e8e8e;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000005500000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0001005500020000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000005500000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0001005500020000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x8000800080008000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x000100010001fffe;
+  *((unsigned long *)&__m256i_op1[1]) = 0x8000800080008000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x000100010001fffe;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000005500000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000005400000002;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000005500000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000005400000002;
+  __m256i_out = __lasx_xvmod_wu (__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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000ff0000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000ff0000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000ff0000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000ff0000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffff800000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x007f0000ff807f81;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffff800000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x007f0000ff807f81;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000ff0000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000ff0000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000ff0000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000ff0000;
+  __m256i_out = __lasx_xvmod_wu (__m256i_op0, __m256i_op1);
+  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]) = 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]) = 0x00000000ffff8000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x00000000ffff8000;
+  __m256i_out = __lasx_xvmod_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x000000000000000c;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x000000000000000c;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000010100000101;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000010100000101;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000010100000101;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000010100000101;
+  *((unsigned long *)&__m256i_result[3]) = 0x000000000000000c;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x000000000000000c;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_wu (__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]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffff000000010000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000095120000;
+  *((unsigned long *)&__m256i_op1[1]) = 0xc9da000063f50000;
+  *((unsigned long *)&__m256i_op1[0]) = 0xc7387fff6bbfffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x7fffffffffffffff;
+  __m256i_out = __lasx_xvmod_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000001000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000001000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000001000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000001000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x1fffffff1fffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0383634303836343;
+  *((unsigned long *)&__m256i_op1[1]) = 0x1fffffff1fffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0383634303836343;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000001000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000001000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000001000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000001000000;
+  __m256i_out = __lasx_xvmod_du (__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]) = 0x00007f8000007f80;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00007f8000007f80;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00007f8000007f80;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00007f8000007f80;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmod_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmul.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmul.c
new file mode 100644
index 000000000000..be3c8e718f85
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmul.c
@@ -0,0 +1,620 @@
+/* { 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]) = 0xffd1b24e00000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0xfffcea54ffff29a8;
+  *((unsigned long *)&__m256i_op0[1]) = 0xff8cad88ff8306b4;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfffc1278fffce4c8;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0e2d5626ff75cdbc;
+  *((unsigned long *)&__m256i_op1[2]) = 0x5db4b156e2002a78;
+  *((unsigned long *)&__m256i_op1[1]) = 0xeeffbeb03ba3e6b0;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0c16e25eb28d27ea;
+  *((unsigned long *)&__m256i_result[3]) = 0xf96d674800000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x44a4330e2c7116c0;
+  *((unsigned long *)&__m256i_result[1]) = 0x14187a7822b653c0;
+  *((unsigned long *)&__m256i_result[0]) = 0xfbe0b866962b96d0;
+  __m256i_out = __lasx_xvmul_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]) = 0xffffff01ffffff08;
+  *((unsigned long *)&__m256i_op1[2]) = 0x43700f0100003008;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffff01ffffff08;
+  *((unsigned long *)&__m256i_op1[0]) = 0x43700f0100003008;
+  *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000f8;
+  *((unsigned long *)&__m256i_result[2]) = 0xbc8ff0ffffffcff8;
+  *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000f8;
+  *((unsigned long *)&__m256i_result[0]) = 0xbc8ff0ffffffcff8;
+  __m256i_out = __lasx_xvmul_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_xvmul_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_xvmul_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x7ff0000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x353bb67af686ad9b;
+  *((unsigned long *)&__m256i_op0[1]) = 0x7ff0000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x353bb67af686ad9b;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0200000200000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x2c27000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0200000200000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x2c27000000000000;
+  *((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_xvmul_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_xvmul_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000001;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op0[1]) = 0x8000000080000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000180000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xc080ffff0049ffd2;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0002ff80ffb70000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000fffeffb9ff9d;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00010000002fff9e;
+  *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffd2;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000ff8000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000080000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000080000000;
+  __m256i_out = __lasx_xvmul_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00fe01f000010000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000c40086;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00fe01f000010000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000c40086;
+  *((unsigned long *)&__m256i_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_xvmul_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000001900000019;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000001900000019;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000001900000019;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000001900000019;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x000000007fff003f;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x000000007fff003f;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000627;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000627;
+  __m256i_out = __lasx_xvmul_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]) = 0x00000000fffd5a98;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00000000fffd5a98;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x00000000007f3a40;
+  __m256i_out = __lasx_xvmul_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000400;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000400;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000020;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000020;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000020;
+  *((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_xvmul_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x120e120dedf1edf2;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x120e120dedf1edf2;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmul_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]) = 0x0000000000000907;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000907;
+  *((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_xvmul_b (__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]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_result[3]) = 0x1010000010100000;
+  *((unsigned long *)&__m256i_result[2]) = 0x1010000010100000;
+  *((unsigned long *)&__m256i_result[1]) = 0x1010000010100000;
+  *((unsigned long *)&__m256i_result[0]) = 0x1010000010100000;
+  __m256i_out = __lasx_xvmul_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00007fff00000001;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0040000100000001;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00007fff00000001;
+  *((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_xvmul_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000044444443;
+  *((unsigned long *)&__m256i_op0[2]) = 0x7bbbbbbbf7777778;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000044444443;
+  *((unsigned long *)&__m256i_op0[0]) = 0x7bbbbbbbf7777778;
+  *((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_xvmul_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]) = 0xfffffffffffefffe;
+  *((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_xvmul_d (__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]) = 0x0000000100000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xfffe0001fffe0003;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffe0001fffe0003;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffe0001fffe0003;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+  *((unsigned long *)&__m256i_result[3]) = 0xfffe0001fffe0003;
+  *((unsigned long *)&__m256i_result[2]) = 0xfffe0001fffe0003;
+  *((unsigned long *)&__m256i_result[1]) = 0xfffe0001fffe0003;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmul_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_xvmul_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_xvmul_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_xvmul_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]) = 0xdf00000052a00000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x5b7f00ff5b7f00ff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xdf00000052a00000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x5b7f00ff5b7f00ff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmul_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfffffff30000000b;
+  *((unsigned long *)&__m256i_op0[2]) = 0xfffffff3fffffff3;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfffffff30000000b;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfffffff3fffffff3;
+  *((unsigned long *)&__m256i_op1[3]) = 0xbc30c40108a45423;
+  *((unsigned long *)&__m256i_op1[2]) = 0xbc263e0e5d00e69f;
+  *((unsigned long *)&__m256i_op1[1]) = 0xbc30c40108a4544b;
+  *((unsigned long *)&__m256i_op1[0]) = 0xbc20e63aa8b9663f;
+  *((unsigned long *)&__m256i_result[3]) = 0x71860bf35f0f9d81;
+  *((unsigned long *)&__m256i_result[2]) = 0x720ed94a46f449ed;
+  *((unsigned long *)&__m256i_result[1]) = 0x71860bf35f0f9f39;
+  *((unsigned long *)&__m256i_result[0]) = 0x72544f0e6e95cecd;
+  __m256i_out = __lasx_xvmul_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x111ebb784f9c4100;
+  *((unsigned long *)&__m256i_op0[2]) = 0x1c386546809f3b50;
+  *((unsigned long *)&__m256i_op0[1]) = 0x111ebb784f9bf1ac;
+  *((unsigned long *)&__m256i_op0[0]) = 0x21f6050d955d3f68;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000ffff00000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff00000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0xbab0c4b000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0xaa0ac09800000000;
+  __m256i_out = __lasx_xvmul_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x8011ffee804c004c;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00faff0500c3ff3c;
+  *((unsigned long *)&__m256i_op0[1]) = 0x80f900f980780078;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0057ffa800ceff31;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmul_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_xvmul_d (__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]) = 0xffffffff00000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[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_xvmul_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00bf00bf00bf00bf;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00bf00bf00bf00bf;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00bf00bf00bf00bf;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00bf00bf00bf00bf;
+  *((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_xvmul_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000008;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000008;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000009;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000011;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000009;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000011;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000088;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000088;
+  __m256i_out = __lasx_xvmul_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_xvmul_h (__m256i_op0, __m256i_op1);
+  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_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000080;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000004000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmul_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]) = 0xc0008000c0008000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0xc0008000c0008000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmul_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmul_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000800080008000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x80008000fff98000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000800080008000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x80008000fff98000;
+  *((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_xvmul_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_xvmul_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfffffffeffff97a1;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffffdf5b000041b0;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfffffffeffff97a1;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffdf5b000041b0;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00f8000000000008;
+  *((unsigned long *)&__m256i_op1[2]) = 0x000800f800000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00f8000000000008;
+  *((unsigned long *)&__m256i_op1[0]) = 0x000800f800000000;
+  *((unsigned long *)&__m256i_result[3]) = 0xe3f7fff7fffcbd08;
+  *((unsigned long *)&__m256i_result[2]) = 0x0dbfa28000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0xe3f7fff7fffcbd08;
+  *((unsigned long *)&__m256i_result[0]) = 0x0dbfa28000000000;
+  __m256i_out = __lasx_xvmul_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x1c1c1c1c1c1c1c1c;
+  *((unsigned long *)&__m256i_op0[2]) = 0x1c1c1c1c1c1c1c1c;
+  *((unsigned long *)&__m256i_op0[1]) = 0x1c1c1c1c1c1c1c1c;
+  *((unsigned long *)&__m256i_op0[0]) = 0x1c1c1c1c1c1c1c1c;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0001000100010001;
+  *((unsigned long *)&__m256i_result[3]) = 0x7070545438381c1c;
+  *((unsigned long *)&__m256i_result[2]) = 0x7070545438381c1c;
+  *((unsigned long *)&__m256i_result[1]) = 0x7070545438381c1c;
+  *((unsigned long *)&__m256i_result[0]) = 0x7070545438381c1c;
+  __m256i_out = __lasx_xvmul_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]) = 0xffffffffff000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffff000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmul_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_xvmul_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]) = 0x1400080008000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x1400080008000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x1400080008000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x1400080008000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmul_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-xvmulwev-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-1.c
new file mode 100644
index 000000000000..01ff7164904c
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-1.c
@@ -0,0 +1,590 @@
+/* { 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]) = 0xf96d674800000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x44a4330e2c7116c0;
+  *((unsigned long *)&__m256i_op0[1]) = 0x14187a7822b653c0;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfbe0b866962b96d0;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffd1b24e00000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffcea54ffff29a8;
+  *((unsigned long *)&__m256i_op1[1]) = 0xff8cad88ff8306b4;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffc1278fffce4c8;
+  *((unsigned long *)&__m256i_result[3]) = 0xebfd15f000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x01700498ff8f1600;
+  *((unsigned long *)&__m256i_result[1]) = 0xf520c7c024221300;
+  *((unsigned long *)&__m256i_result[0]) = 0x00802fd0ff540a80;
+  __m256i_out = __lasx_xvmulwev_h_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x7fffff90ffffff81;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x7fffff90ffffff81;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 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_xvmulwev_h_b (__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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_h_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000007;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000007;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffbdff3cffbdff44;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffbdff3cffbdff44;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x00000000000001dc;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x00000000000001dc;
+  __m256i_out = __lasx_xvmulwev_h_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xff00ff00ff00ef32;
+  *((unsigned long *)&__m256i_op0[2]) = 0xff00ff00ff00ef32;
+  *((unsigned long *)&__m256i_op0[1]) = 0xff00ff00ff00ef32;
+  *((unsigned long *)&__m256i_op0[0]) = 0xff00ff00ff00ef32;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00ff00ff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00ff00ff00ff00ee;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00ff00ff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00ff00ff00ff00ee;
+  *((unsigned long *)&__m256i_result[3]) = 0x000000000000ffce;
+  *((unsigned long *)&__m256i_result[2]) = 0x000000000000fc7c;
+  *((unsigned long *)&__m256i_result[1]) = 0x000000000000ffce;
+  *((unsigned long *)&__m256i_result[0]) = 0x000000000000fc7c;
+  __m256i_out = __lasx_xvmulwev_h_b (__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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_h_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]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0001000100000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0001000100000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_h_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]) = 0x0010100000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0010100000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_w_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xf800f800f800c000;
+  *((unsigned long *)&__m256i_op0[2]) = 0xf800f800f800a000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xf800f800f800e000;
+  *((unsigned long *)&__m256i_op0[0]) = 0xf800f800f800e000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffff00ffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffff000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x000000ff00000000;
+  *((unsigned long *)&__m256i_result[3]) = 0xfff8080000004000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000080000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0xfff8080000000000;
+  __m256i_out = __lasx_xvmulwev_w_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_xvmulwev_w_h (__m256i_op0, __m256i_op1);
+  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_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]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000200000002;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000200000002;
+  __m256i_out = __lasx_xvmulwev_w_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_xvmulwev_w_h (__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]) = 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_xvmulwev_w_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_xvmulwev_w_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_xvmulwev_w_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]) = 0x00001ff800000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0xd8d8c00000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00001ff800000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0xd8d8c00000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_w_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]) = 0x4000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x3f80000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x4000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x3f80000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_w_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]) = 0x8000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x000000ffff88ff88;
+  *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x000000ffff88ff88;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_w_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xc5c5c5c4c5c5c5c4;
+  *((unsigned long *)&__m256i_op0[2]) = 0x45c5c5c545c5c5c5;
+  *((unsigned long *)&__m256i_op0[1]) = 0xc5c5c5c4c5c5c5c4;
+  *((unsigned long *)&__m256i_op0[0]) = 0x45c5c5c545c5c5c5;
+  *((unsigned long *)&__m256i_op1[3]) = 0xfffffff8ffffff08;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00ff00f800ffcff8;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffff8ffffff08;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00ff00f800ffcff8;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000003868686a20;
+  *((unsigned long *)&__m256i_result[2]) = 0x0045b8ae81bce1d8;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000003868686a20;
+  *((unsigned long *)&__m256i_result[0]) = 0x0045b8ae81bce1d8;
+  __m256i_out = __lasx_xvmulwev_d_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xc06500550055ffab;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xc06500550055ffab;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 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_xvmulwev_d_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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_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]) = 0x6c6c6c6c6c6c6c6c;
+  *((unsigned long *)&__m256i_op1[2]) = 0x6c6c6c6c6c6c6c6c;
+  *((unsigned long *)&__m256i_op1[1]) = 0x6c6c6c6c6c6c6c6c;
+  *((unsigned long *)&__m256i_op1[0]) = 0x6c6c6c6c6c6c6c6c;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_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]) = 0x0000000002a54290;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000002a54290;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_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_xvmulwev_d_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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffff00ffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffff00ffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_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_xvmulwev_d_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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_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]) = 0xfd12fd12fd12fd12;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfd12fd12fd12fd12;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfd12fd12fd12fd12;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfd12fd12fd12fd12;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000060000108;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000001060005;
+  *((unsigned long *)&__m256i_op0[1]) = 0x000000007fef0001;
+  *((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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_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]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((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]) = 0x0000000000000001;
+  __m256i_out = __lasx_xvmulwev_q_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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x201fdfe0201fdfe0;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x201fdfe0201fdfe0;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000007;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000007;
+  *((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_xvmulwev_q_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 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_xvmulwev_q_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]) = 0x000000017bfffff0;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000180007fe8;
+  *((unsigned long *)&__m256i_op1[1]) = 0x000000017bfffff0;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000180007fe8;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000064;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00000000000000fd;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00000000000000fe;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x00000000000062d4;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_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]) = 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_xvmulwev_q_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]) = 0x0000000000ff0000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000ff0000;
+  *((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_xvmulwev_q_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-xvmulwev-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-2.c
new file mode 100644
index 000000000000..32088f4aede5
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-2.c
@@ -0,0 +1,590 @@
+/* { 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]) = 0x4e5cba76cdbaaa78;
+  *((unsigned long *)&__m256i_op0[2]) = 0xce68fdeb4e33eaff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x4e45cc2dcda41b30;
+  *((unsigned long *)&__m256i_op0[0]) = 0x4ccb1e5c4d6b21e4;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x7fffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x44bb2cd3a35c2fd0;
+  *((unsigned long *)&__m256i_result[0]) = 0xca355ba46a95e31c;
+  __m256i_out = __lasx_xvmulwev_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0202000002020202;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0202000002010101;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0202000002020202;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0202000002020000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7fff7fff7fff7fff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x7fff7fff7fff7fff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x01fe000000ff00ff;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x01fe000001fe0000;
+  __m256i_out = __lasx_xvmulwev_h_bu (__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_xvmulwev_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00000000000001ff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffffe0000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00000000000001ff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffffe0000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffff80000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffff80000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 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_xvmulwev_h_bu (__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_xvmulwev_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x8000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00000000f788f788;
+  *((unsigned long *)&__m256i_op0[1]) = 0x8000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00000000f788f788;
+  *((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_xvmulwev_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00000000ff01ff68;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00000070ff017de6;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00000000ff01ff68;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00000070ff017de6;
+  *((unsigned long *)&__m256i_op1[3]) = 0x761ed60b5d7f0000;
+  *((unsigned long *)&__m256i_op1[2]) = 0xdc9938afafe904f1;
+  *((unsigned long *)&__m256i_op1[1]) = 0x761ed60b5d7f0000;
+  *((unsigned long *)&__m256i_op1[0]) = 0xdc9938afafe904f1;
+  *((unsigned long *)&__m256i_result[3]) = 0x00000000007f0000;
+  *((unsigned long *)&__m256i_result[2]) = 0x00004c9000e9d886;
+  *((unsigned long *)&__m256i_result[1]) = 0x00000000007f0000;
+  *((unsigned long *)&__m256i_result[0]) = 0x00004c9000e9d886;
+  __m256i_out = __lasx_xvmulwev_h_bu (__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]) = 0xfffffffff328dfff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x6651bfff00000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffffff328dfff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x6651bfff00000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0xfffe0001c3fe4001;
+  *((unsigned long *)&__m256i_result[0]) = 0x8ffe800100000000;
+  __m256i_out = __lasx_xvmulwev_w_hu (__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_xvmulwev_w_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xff01ff010000fff9;
+  *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff19;
+  *((unsigned long *)&__m256i_op0[1]) = 0xff02ff020001fffa;
+  *((unsigned long *)&__m256i_op0[0]) = 0x000100010001fffa;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00ff00ff00000007;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00000000000000e7;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00ff00ff00000007;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000007;
+  *((unsigned long *)&__m256i_result[3]) = 0x00fe01ff0006ffcf;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000e62f8f;
+  *((unsigned long *)&__m256i_result[1]) = 0x00fe02fe0006ffd6;
+  *((unsigned long *)&__m256i_result[0]) = 0x000000000006ffd6;
+  __m256i_out = __lasx_xvmulwev_w_hu (__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]) = 0x01010101010000ff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffef;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000010;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffef;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000010;
+  *((unsigned long *)&__m256i_result[3]) = 0x0100feff0100eeef;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000001010;
+  *((unsigned long *)&__m256i_result[1]) = 0x0100feff00feef11;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000001010;
+  __m256i_out = __lasx_xvmulwev_w_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op0[2]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op0[1]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op0[0]) = 0x2020202020202020;
+  *((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]) = 0x201fdfe0201fdfe0;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x201fdfe0201fdfe0;
+  __m256i_out = __lasx_xvmulwev_w_hu (__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]) = 0xffff47b4ffff5878;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000b84b0000a787;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffff47b4ffff5878;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000b84b0000a787;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_w_hu (__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_xvmulwev_w_hu (__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]) = 0x0000020000000200;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000020000000200;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000020000000200;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000020000000200;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_w_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0101010101010101;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0101010101010101;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000100000001;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000010100000101;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000010100000101;
+  __m256i_out = __lasx_xvmulwev_w_hu (__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_xvmulwev_w_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xff1cff1cff1cff1c;
+  *((unsigned long *)&__m256i_op0[2]) = 0xff1cff1cff1cff1c;
+  *((unsigned long *)&__m256i_op0[1]) = 0xff1cff1cff1cff1c;
+  *((unsigned long *)&__m256i_op0[0]) = 0xff1cff1cff1cff1c;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[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]) = 0x00000000ff1b00e4;
+  __m256i_out = __lasx_xvmulwev_w_hu (__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]) = 0x0808080808080808;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0808080808080808;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0808080808080808;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0808080808080808;
+  *((unsigned long *)&__m256i_result[3]) = 0x0807f7f80807f7f8;
+  *((unsigned long *)&__m256i_result[2]) = 0x0807f7f80807f7f8;
+  *((unsigned long *)&__m256i_result[1]) = 0x0807f7f80807f7f8;
+  *((unsigned long *)&__m256i_result[0]) = 0x0807f7f80807f7f8;
+  __m256i_out = __lasx_xvmulwev_w_hu (__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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_w_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xc2c2c2c2c2c2c2c2;
+  *((unsigned long *)&__m256i_op0[2]) = 0xc2c2c2c2c2c29cc0;
+  *((unsigned long *)&__m256i_op0[1]) = 0xc2c2c2c2c2c2c2c2;
+  *((unsigned long *)&__m256i_op0[0]) = 0xc2c2c2c2c2c29cc0;
+  *((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_xvmulwev_d_wu (__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_xvmulwev_d_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x000000000000004e;
+  *((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]) = 0x000000007fffffff;
+  *((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_xvmulwev_d_wu (__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]) = 0xfffffffe00000001;
+  *((unsigned long *)&__m256i_result[2]) = 0xfffffffe00000001;
+  *((unsigned long *)&__m256i_result[1]) = 0xfffffffe00000001;
+  *((unsigned long *)&__m256i_result[0]) = 0xfffffffe00000001;
+  __m256i_out = __lasx_xvmulwev_d_wu (__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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_wu (__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_xvmulwev_d_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000005;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000005;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000002;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000002;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x000000000000000a;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x000000000000000a;
+  __m256i_out = __lasx_xvmulwev_d_wu (__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_xvmulwev_q_du (__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]) = 0x000000007f000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x000000007fff0000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x000000007fff0000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0408040800008003;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0408040800008003;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0408040800008002;
+  *((unsigned long *)&__m256i_result[0]) = 0xfbf7fbf7ffff7ffd;
+  __m256i_out = __lasx_xvmulwev_q_du (__m256i_op0, __m256i_op1);
+  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_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_xvmulwev_q_du (__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]) = 0x8000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x8000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x8000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_du (__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_xvmulwev_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xbff0000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0xc192181230000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xbff0000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0xc192181230000000;
+  *((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_xvmulwev_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op0[2]) = 0x2020202020206431;
+  *((unsigned long *)&__m256i_op0[1]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op0[0]) = 0x2020202020206431;
+  *((unsigned long *)&__m256i_op1[3]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op1[2]) = 0x2020202020206431;
+  *((unsigned long *)&__m256i_op1[1]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op1[0]) = 0x2020202020206431;
+  *((unsigned long *)&__m256i_result[3]) = 0x04080c1014182d35;
+  *((unsigned long *)&__m256i_result[2]) = 0x716d696573765161;
+  *((unsigned long *)&__m256i_result[1]) = 0x04080c1014182d35;
+  *((unsigned long *)&__m256i_result[0]) = 0x716d696573765161;
+  __m256i_out = __lasx_xvmulwev_q_du (__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]) = 0xfffffff1fffffff1;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfffffff1fffffff1;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffff1fffffff1;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffffff1fffffff1;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-3.c
new file mode 100644
index 000000000000..19157f6822a3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwev-3.c
@@ -0,0 +1,605 @@
+/* { 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]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffffffefe;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000101;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffffefe;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000101;
+  *((unsigned long *)&__m256i_result[3]) = 0xff01ff01ff01fe02;
+  *((unsigned long *)&__m256i_result[2]) = 0x00000000000000ff;
+  *((unsigned long *)&__m256i_result[1]) = 0xff01ff01ff01fe02;
+  *((unsigned long *)&__m256i_result[0]) = 0x00000000000000ff;
+  __m256i_out = __lasx_xvmulwev_h_bu_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]) = 0x0000000000000505;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x00000000000004fb;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_h_bu_b (__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]) = 0x80000000ffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x80000000ffff8c80;
+  *((unsigned long *)&__m256i_op1[1]) = 0x80000000ffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x80000000fff0e400;
+  *((unsigned long *)&__m256i_result[3]) = 0x00000000ff01ff01;
+  *((unsigned long *)&__m256i_result[2]) = 0x00000000ff01c000;
+  *((unsigned long *)&__m256i_result[1]) = 0x00000000ff01ff01;
+  *((unsigned long *)&__m256i_result[0]) = 0x00000000f1000000;
+  __m256i_out = __lasx_xvmulwev_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op1[3]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[3]) = 0xff01ff01ff01fe04;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[1]) = 0xff01ff01ff01fe04;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+  __m256i_out = __lasx_xvmulwev_h_bu_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_xvmulwev_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x000000000022ffdd;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x000000000022ffdd;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00000000aaabffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00000000aaabffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00000000aaabffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00000000aaabffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x00000000f4b6ff23;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x00000000f4b6ff23;
+  __m256i_out = __lasx_xvmulwev_h_bu_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_xvmulwev_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffff000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000fffe00000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffff000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000fffe00000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x386000003df80000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x386000003df80000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x5fa0000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x5fa0000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000004;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000004;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000004;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000004;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_h_bu_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]) = 0x0000000000000f20;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00000000000009f0;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_wu_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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_wu_w (__m256i_op0, __m256i_op1);
+  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]) = 0x417e01f040800000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x299d060000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x417e01f040800000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x29108b0000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_wu_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000008;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000008;
+  *((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]) = 0x0707b7cff8f84830;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000354ad4c28;
+  *((unsigned long *)&__m256i_result[1]) = 0x0707b7cff8f84830;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000354ad4c28;
+  __m256i_out = __lasx_xvmulwev_d_wu_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xff00d5007f00ffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xff00ffffff00ffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0xff00d5007f00ffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xff00ffffff00ffff;
+  *((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_xvmulwev_d_wu_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_xvmulwev_d_wu_w (__m256i_op0, __m256i_op1);
+  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_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_xvmulwev_d_wu_w (__m256i_op0, __m256i_op1);
+  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]) = 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_xvmulwev_d_wu_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_xvmulwev_d_wu_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]) = 0x0080000000800000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0080000000800000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0080000000800000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0080000000800000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_wu_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000ff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000ef;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000ff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000080;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000016e00;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000016e00;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x000000000155b200;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000b70000;
+  __m256i_out = __lasx_xvmulwev_d_wu_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000001ff03fe;
+  *((unsigned long *)&__m256i_op0[2]) = 0xfffffec75c2d209f;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000001ff03fe;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfffffec75c2d209f;
+  *((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_xvmulwev_d_wu_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x000000000000008b;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffff010000008b;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_d_wu_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000ffff0002fffd;
+  *((unsigned long *)&__m256i_op0[2]) = 0x04f104f104f504ed;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0002fffd;
+  *((unsigned long *)&__m256i_op0[0]) = 0x04f104f104f504ed;
+  *((unsigned long *)&__m256i_op1[3]) = 0x03af03af03af03af;
+  *((unsigned long *)&__m256i_op1[2]) = 0x03acfc5303260e80;
+  *((unsigned long *)&__m256i_op1[1]) = 0x03af03af03af03af;
+  *((unsigned long *)&__m256i_op1[0]) = 0x03acfc5303260e80;
+  *((unsigned long *)&__m256i_result[3]) = 0x00000b0cfffff4f3;
+  *((unsigned long *)&__m256i_result[2]) = 0x000f9bb562f56c80;
+  *((unsigned long *)&__m256i_result[1]) = 0x00000b0cfffff4f3;
+  *((unsigned long *)&__m256i_result[0]) = 0x000f9bb562f56c80;
+  __m256i_out = __lasx_xvmulwev_d_wu_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x1000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x1000000000000000;
+  *((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_xvmulwev_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0101010101010101;
+  *((unsigned long *)&__m256i_op0[2]) = 0x3ff1808001020101;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0101010101010101;
+  *((unsigned long *)&__m256i_op0[0]) = 0x3ff1808001020101;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00000ff7f1080ef8;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0100000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00000ff7f1080ef8;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0100000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x003ff18080010201;
+  *((unsigned long *)&__m256i_result[2]) = 0x0100000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x003ff18080010201;
+  *((unsigned long *)&__m256i_result[0]) = 0x0100000000000000;
+  __m256i_out = __lasx_xvmulwev_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00000000f0000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00000000f0000000;
+  *((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_xvmulwev_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x1f0fdf7f3e3b31d4;
+  *((unsigned long *)&__m256i_op0[2]) = 0x7ff8000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x1f0fdf7f3e3b31d4;
+  *((unsigned long *)&__m256i_op0[0]) = 0x7ff8000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xfbba01c0003f7e3f;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffc6cc05c64d960e;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfbd884e7003f7e3f;
+  *((unsigned long *)&__m256i_op1[0]) = 0xff874dc687870000;
+  *((unsigned long *)&__m256i_result[3]) = 0xffe367cc82f8989a;
+  *((unsigned long *)&__m256i_result[2]) = 0x4f90000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0xffc3aaa8d58f43c8;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_du_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_xvmulwev_q_du_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]) = 0x0000000020202020;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000020202020;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000020202020;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000020202020;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x8000000080000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x8000000080000000;
+  *((unsigned long *)&__m256i_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_xvmulwev_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffdfffffffdfffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffdfffffffdfffff;
+  *((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]) = 0x0020000000200001;
+  *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[0]) = 0x0020000000200001;
+  __m256i_out = __lasx_xvmulwev_q_du_d (__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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffffff000;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffff01;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffffffff2;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffff01;
+  *((unsigned long *)&__m256i_op1[3]) = 0x1010101010001000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x000000ff000000ff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x101010100000000e;
+  *((unsigned long *)&__m256i_op1[0]) = 0x000000ff000000ff;
+  *((unsigned long *)&__m256i_result[3]) = 0x000000ff000000fe;
+  *((unsigned long *)&__m256i_result[2]) = 0xffff01feffff01ff;
+  *((unsigned long *)&__m256i_result[1]) = 0x000000ff000000fe;
+  *((unsigned long *)&__m256i_result[0]) = 0xffff01feffff01ff;
+  __m256i_out = __lasx_xvmulwev_q_du_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]) = 0x0000ffff02000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000ffff02000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_du_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_xvmulwev_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x5fa0000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x5fa0000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xe07de0801f20607a;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xe07de0801f20607a;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwev_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xfffe97c020010001;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfffe97c020010001;
+  *((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_xvmulwev_q_du_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_xvmulwev_q_du_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-xvmulwod-1.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-1.c
new file mode 100644
index 000000000000..80fdcda6376d
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-1.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]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x7a7cad6eca32ccc1;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7a7cad6efe69abd1;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7a7cad6eca32ccc1;
+  *((unsigned long *)&__m256i_op1[0]) = 0x7a7cad6efe69abd1;
+  *((unsigned long *)&__m256i_result[3]) = 0xff86005300360034;
+  *((unsigned long *)&__m256i_result[2]) = 0xff86005300020055;
+  *((unsigned long *)&__m256i_result[1]) = 0xff86005300360034;
+  *((unsigned long *)&__m256i_result[0]) = 0xff86005300020055;
+  __m256i_out = __lasx_xvmulwod_h_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_xvmulwod_h_b (__m256i_op0, __m256i_op1);
+  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_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]) = 0x2c27000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x2c27000000000000;
+  __m256i_out = __lasx_xvmulwod_h_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfff9fff9fff9fff9;
+  *((unsigned long *)&__m256i_op0[2]) = 0xfff90000fff9fff9;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfff9fff9fff9fff9;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfff90000fff9fff9;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00000000ffff0000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00000000ffff0000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000010000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000010000;
+  __m256i_out = __lasx_xvmulwod_h_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]) = 0x00000000007f3a40;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00000000007f3a40;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000d24;
+  __m256i_out = __lasx_xvmulwod_h_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]) = 0x0000000044444443;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000073333333;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000044444443;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000073333333;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_h_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_xvmulwod_h_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffff0020001d001f;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffff0020001d001f;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xfffffe20001dfe1f;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfffffe20001dfe1f;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0001000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0001000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_h_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_h_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffff000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000fffe00000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffff000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000fffe00000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00ca0000fff80000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00ca0000fff80000;
+  *((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_xvmulwod_h_b (__m256i_op0, __m256i_op1);
+  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]) = 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]) = 0x0001000100010080;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0001000100010080;
+  __m256i_out = __lasx_xvmulwod_h_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_xvmulwod_h_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_xvmulwod_h_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00000000000000ff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00000000000000e7;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00000000000000ff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00000000000000e7;
+  *((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_xvmulwod_h_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000015d050192cb;
+  *((unsigned long *)&__m256i_op0[2]) = 0x028e509508b16ee9;
+  *((unsigned long *)&__m256i_op0[1]) = 0x000033ff01020e23;
+  *((unsigned long *)&__m256i_op0[0]) = 0x151196b58fd1114d;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00ff0000ffff00ff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xff000000ffffff00;
+  *((unsigned long *)&__m256i_op1[1]) = 0x000000ff000000ff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000ffffffff00ff;
+  *((unsigned long *)&__m256i_result[3]) = 0x00000000fffffaff;
+  *((unsigned long *)&__m256i_result[2]) = 0xfffd7200fffff74f;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x000000000000702f;
+  __m256i_out = __lasx_xvmulwod_w_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000010;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000010;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000808;
+  *((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_xvmulwod_w_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0408040800008003;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op0[0]) = 0x04080408fff87803;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0707b7cff8f84830;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000354ad4c28;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0707b7cff8f84830;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000354ad4c28;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x00000000fffd5a98;
+  __m256i_out = __lasx_xvmulwod_w_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_xvmulwod_w_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]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_w_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00000000007e8080;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00000000007e8092;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00000000007e8080;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00000000007e8092;
+  *((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_xvmulwod_w_h (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffe07de080;
+  *((unsigned long *)&__m256i_op0[2]) = 0x000000001f20607a;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffe07de080;
+  *((unsigned long *)&__m256i_op0[0]) = 0x000000001f20607a;
+  *((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_xvmulwod_w_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_xvmulwod_w_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]) = 0x0000f6ff00000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000f6ff00000000;
+  *((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_xvmulwod_d_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_xvmulwod_d_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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0010000000100000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000010000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000010000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000010000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000010000000000;
+  __m256i_out = __lasx_xvmulwod_d_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000ffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00153f1594ea02ff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000ffffffff0100;
+  *((unsigned long *)&__m256i_op0[0]) = 0xff15c1ea95ea02ff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00000000003f0000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000030007;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00000000003f0000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000030007;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfffffe20001dfe1f;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfffffe20001dfe1f;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00003fe000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00003fe000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_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]) = 0x00000000ffff0000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffff0000;
+  *((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_xvmulwod_d_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfff9fffffffbffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xfffdaaaaffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfff9fffffffbffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xfffdaaaaffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000040;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000040;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000040;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000040;
+  *((unsigned long *)&__m256i_result[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[2]) = 0xfe7ffffffeffffc0;
+  *((unsigned long *)&__m256i_result[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[0]) = 0xfe7ffffffeffffc0;
+  __m256i_out = __lasx_xvmulwod_q_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 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]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+  __m256i_out = __lasx_xvmulwod_q_d (__m256i_op0, __m256i_op1);
+  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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000017fff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000017fff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_q_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_xvmulwod_q_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_xvmulwod_q_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-xvmulwod-2.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-2.c
new file mode 100644
index 000000000000..1a4b221fe7a3
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-2.c
@@ -0,0 +1,470 @@
+/* { 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_op1[3]) = 0x0000000001010101;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000001010101;
+  *((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_xvmulwod_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x01480000052801a2;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffdcff64;
+  *((unsigned long *)&__m256i_op1[3]) = 0xbea2e127c046721f;
+  *((unsigned long *)&__m256i_op1[2]) = 0x1729c073816edebe;
+  *((unsigned long *)&__m256i_op1[1]) = 0xde91f010000006f9;
+  *((unsigned long *)&__m256i_op1[0]) = 0x5ef1f90efefaf30d;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x00170000028500de;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x00000000fd02f20d;
+  __m256i_out = __lasx_xvmulwod_h_bu (__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]) = 0x00000000fffffffa;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[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_xvmulwod_h_bu (__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_xvmulwod_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x7f8000007f800000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x7fc000007fc00000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x7f8000007f800000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x7fc000007fc00000;
+  *((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_xvmulwod_h_bu (__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_xvmulwod_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x4ffc3f7800000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x3fc03f6400000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x4ffc3f7800000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x3fc03f6400000000;
+  *((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]) = 0x4eb13ec100000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x3ec13ec100000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x4eb13ec100000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x3ec13ec100000000;
+  __m256i_out = __lasx_xvmulwod_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x457db03e457db03e;
+  *((unsigned long *)&__m256i_op0[2]) = 0x457db03e45a87310;
+  *((unsigned long *)&__m256i_op0[1]) = 0x457db03e457db03e;
+  *((unsigned long *)&__m256i_op0[0]) = 0x457db03e45a87310;
+  *((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_xvmulwod_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xfffffffffefefefe;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000040404040;
+  *((unsigned long *)&__m256i_op0[1]) = 0xfffffffffefefefe;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000040404040;
+  *((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]) = 0xfe01fe01fd02fd02;
+  *((unsigned long *)&__m256i_result[2]) = 0x000000003fc03fc0;
+  *((unsigned long *)&__m256i_result[1]) = 0xfe01fe01fd02fd02;
+  *((unsigned long *)&__m256i_result[0]) = 0x000000003fc03fc0;
+  __m256i_out = __lasx_xvmulwod_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_h_bu (__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_xvmulwod_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000400000004000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000400000004000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000400000004000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000400000004000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xc039000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0xc039000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0xc039000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0xc039000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_h_bu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op0[2]) = 0x05ea05ea05ea05ec;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op0[0]) = 0x05ea05ea05ea05ec;
+  *((unsigned long *)&__m256i_op1[3]) = 0xfd02fd02fd02fd02;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfd02fd02fd02fd02;
+  *((unsigned long *)&__m256i_op1[1]) = 0xfd02fd02fd02fd02;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfd02fd02fd02fd02;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x04f104f104f104f1;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x04f104f104f104f1;
+  __m256i_out = __lasx_xvmulwod_h_bu (__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_xvmulwod_w_hu (__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]) = 0x9090909090909090;
+  *((unsigned long *)&__m256i_op1[2]) = 0x9090909090909090;
+  *((unsigned long *)&__m256i_op1[1]) = 0x9090909090909090;
+  *((unsigned long *)&__m256i_op1[0]) = 0x9090909090909090;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_w_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffe1;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffff10;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffe1;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffff10;
+  *((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_xvmulwod_w_hu (__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_xvmulwod_w_hu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x3ff0000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x3ff0000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x3ff0000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x3ff0000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0ff8010000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0ff8010000000000;
+  __m256i_out = __lasx_xvmulwod_d_wu (__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]) = 0x001175f10e4330e8;
+  *((unsigned long *)&__m256i_op1[2]) = 0xff8f0842ff29211e;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffff8d9ffa7103d;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x000000007fffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x000000007fffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x000000007fffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x000000007fffffff;
+  *((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_xvmulwod_d_wu (__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_xvmulwod_d_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op0[2]) = 0x2020202020206431;
+  *((unsigned long *)&__m256i_op0[1]) = 0x2020202020202020;
+  *((unsigned long *)&__m256i_op0[0]) = 0x2020202020206431;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00f800f800f800f8;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0018181800181818;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00f800f800f800f8;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0018181800181818;
+  *((unsigned long *)&__m256i_result[3]) = 0x001f1f3e3e1f1f00;
+  *((unsigned long *)&__m256i_result[2]) = 0x0003060909060300;
+  *((unsigned long *)&__m256i_result[1]) = 0x001f1f3e3e1f1f00;
+  *((unsigned long *)&__m256i_result[0]) = 0x0003060909060300;
+  __m256i_out = __lasx_xvmulwod_d_wu (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op0[2]) = 0x800000ff000000ff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_op0[0]) = 0x800000ff000000ff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0fffffff0fffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x90007fff90008000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0ffffffe90008000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x4800408ef07f7f01;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0800000eeffffe02;
+  __m256i_out = __lasx_xvmulwod_d_wu (__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]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000001;
+  *((unsigned long *)&__m256i_result[1]) = 0xfffffffffffffffe;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000001;
+  __m256i_out = __lasx_xvmulwod_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x01fc03e000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x01fc03e000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00fffb0402fddf20;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00fffb0402fddf20;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0001fbf9fbe29f52;
+  *((unsigned long *)&__m256i_result[2]) = 0x5b409c0000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0001fbf9fbe29f52;
+  *((unsigned long *)&__m256i_result[0]) = 0x5b409c0000000000;
+  __m256i_out = __lasx_xvmulwod_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00000000c0000005;
+  *((unsigned long *)&__m256i_op0[2]) = 0x21f8c3c4c0000005;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00000000c0000005;
+  *((unsigned long *)&__m256i_op0[0]) = 0x21f8c3c4c0000005;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00000000ffff8000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x000043efffff8000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00000000ffff8000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x000043efffff8000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0xbfffa004fffd8000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0xbfffa004fffd8000;
+  __m256i_out = __lasx_xvmulwod_q_du (__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_xvmulwod_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000100010;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0010001000100010;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000100010;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0010001000100010;
+  *((unsigned 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_xvmulwod_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffff6361;
+  *((unsigned long *)&__m256i_op0[2]) = 0x4d0a902890b800dc;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffff6361;
+  *((unsigned long *)&__m256i_op0[0]) = 0x4d0a902890b800dc;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000001ff03ff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00000000000203ff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000001ff03ff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00000000000203ff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000001ff03fe;
+  *((unsigned long *)&__m256i_result[2]) = 0xfffffec75c2d209f;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000001ff03fe;
+  *((unsigned long *)&__m256i_result[0]) = 0xfffffec75c2d209f;
+  __m256i_out = __lasx_xvmulwod_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffffffffffffff10;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffffffffffff10;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000ffff0002fffd;
+  *((unsigned long *)&__m256i_op1[2]) = 0x04f104f104f504ed;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000ffff0002fffd;
+  *((unsigned long *)&__m256i_op1[0]) = 0x04f104f104f504ed;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000ffff0002fffc;
+  *((unsigned long *)&__m256i_result[2]) = 0xffff0000fffd0003;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000ffff0002fffc;
+  *((unsigned long *)&__m256i_result[0]) = 0xffff0000fffd0003;
+  __m256i_out = __lasx_xvmulwod_q_du (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-3.c b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-3.c
new file mode 100644
index 000000000000..9fcd3ce0c011
--- /dev/null
+++ b/gcc/testsuite/gcc.target/loongarch/vector/lasx/lasx-xvmulwod-3.c
@@ -0,0 +1,440 @@
+/* { 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_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_xvmulwod_h_bu_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]) = 0x7ff0000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7ff0000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7ff0000000000000;
+  *((unsigned long *)&__m256i_op1[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_xvmulwod_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x3f2c678e38d1104c;
+  *((unsigned long *)&__m256i_op0[2]) = 0x7ff0000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0x3f2c678e38d1104c;
+  *((unsigned long *)&__m256i_op0[0]) = 0x7ff0000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00aa000000ac00fe;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00aa000000ac00fe;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 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_xvmulwod_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xdf01010153a10101;
+  *((unsigned long *)&__m256i_op0[2]) = 0x5b7f01ff5b7f10ff;
+  *((unsigned long *)&__m256i_op0[1]) = 0xdf01010153a10101;
+  *((unsigned long *)&__m256i_op0[0]) = 0x5b7f01ff5b7f10ff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x001f001f001f001f;
+  *((unsigned long *)&__m256i_op1[2]) = 0x001f001f001f001f;
+  *((unsigned long *)&__m256i_op1[1]) = 0x001f001f001f001f;
+  *((unsigned long *)&__m256i_op1[0]) = 0x001f001f001f001f;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffd8ffc7ffdaff8a;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xffd8ffc7ffdaff8a;
+  *((unsigned long *)&__m256i_result[3]) = 0xff01ff01ff01ff01;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0xff01ff01ff01ff01;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_h_bu_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_xvmulwod_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x000000ff00000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00ffffffffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x000000ff00000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00ffffffffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000080000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000080000000;
+  *((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_xvmulwod_h_bu_b (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x000000000000ffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0x000000000000ff80;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000ffff0000ffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0x000000000000ffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7fff7fff7fff7fff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7fff01fd7fff7fff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00007fff7fff7fff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x00007ffe81fdfe03;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_wu_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]) = 0x000000000000000f;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_wu_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_xvmulwod_d_wu_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xf7f7f7f7f7f7f7f7;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xf7f7f7f7f7f7f7f7;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_wu_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_xvmulwod_d_wu_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]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op1[1]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0x7fefffffffffffff;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_wu_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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_wu_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]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_d_wu_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_xvmulwod_d_wu_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_xvmulwod_d_wu_w (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op0[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x00000000ffffffff;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[2]) = 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_xvmulwod_q_du_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_xvmulwod_q_du_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]) = 0x0000000000001a00;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0x0000000000001a00;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op0[2]) = 0x0000017f00007f7f;
+  *((unsigned long *)&__m256i_op0[1]) = 0x00007f0000000000;
+  *((unsigned long *)&__m256i_op0[0]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x0000000001ffffff;
+  *((unsigned long *)&__m256i_op1[2]) = 0xfe00000000000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0x0000000001ffffff;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfe00000000000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x00000000000000fd;
+  *((unsigned long *)&__m256i_result[0]) = 0xffff810000000000;
+  __m256i_out = __lasx_xvmulwod_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0x71860bf35f0f9d81;
+  *((unsigned long *)&__m256i_op0[2]) = 0x720ed94a46f449ed;
+  *((unsigned long *)&__m256i_op0[1]) = 0x71860bf35f0f9f39;
+  *((unsigned long *)&__m256i_op0[0]) = 0x72544f0e6e95cecd;
+  *((unsigned long *)&__m256i_op1[3]) = 0xffff8910ffff7e01;
+  *((unsigned long *)&__m256i_op1[2]) = 0xffff3573ffff8960;
+  *((unsigned long *)&__m256i_op1[1]) = 0xffff8910ffff1ca9;
+  *((unsigned long *)&__m256i_op1[0]) = 0xfffff5e5ffff8130;
+  *((unsigned long *)&__m256i_result[3]) = 0xffffcb423a587053;
+  *((unsigned long *)&__m256i_result[2]) = 0x6d46f43e71141b81;
+  *((unsigned long *)&__m256i_result[1]) = 0xffffcb423a584528;
+  *((unsigned long *)&__m256i_result[0]) = 0x9bdf36c8d78158a1;
+  __m256i_out = __lasx_xvmulwod_q_du_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]) = 0x800000007fff0001;
+  *((unsigned long *)&__m256i_op1[2]) = 0x80000000ff7f0001;
+  *((unsigned long *)&__m256i_op1[1]) = 0x800000007fff0001;
+  *((unsigned long *)&__m256i_op1[0]) = 0x80000000ff7f0001;
+  *((unsigned long *)&__m256i_result[3]) = 0xbfffffffffff8000;
+  *((unsigned long *)&__m256i_result[2]) = 0xbfff800080000000;
+  *((unsigned long *)&__m256i_result[1]) = 0xbfffffffffff8000;
+  *((unsigned long *)&__m256i_result[0]) = 0xbfff800080000000;
+  __m256i_out = __lasx_xvmulwod_q_du_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_xvmulwod_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  *((unsigned long *)&__m256i_op0[3]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[2]) = 0xffffe00000000000;
+  *((unsigned long *)&__m256i_op0[1]) = 0xffffffffffffffff;
+  *((unsigned long *)&__m256i_op0[0]) = 0xffffe00000000000;
+  *((unsigned long *)&__m256i_op1[3]) = 0x00000000000007f8;
+  *((unsigned long *)&__m256i_op1[2]) = 0x00000000000002de;
+  *((unsigned long *)&__m256i_op1[1]) = 0x00000000000007f8;
+  *((unsigned long *)&__m256i_op1[0]) = 0x00000000000002de;
+  *((unsigned long *)&__m256i_result[3]) = 0x00000000000007f7;
+  *((unsigned long *)&__m256i_result[2]) = 0xfffffffffffff808;
+  *((unsigned long *)&__m256i_result[1]) = 0x00000000000007f7;
+  *((unsigned long *)&__m256i_result[0]) = 0xfffffffffffff808;
+  __m256i_out = __lasx_xvmulwod_q_du_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]) = 0xf5fffc00fc000000;
+  *((unsigned long *)&__m256i_op1[2]) = 0xf5fffc00fc000000;
+  *((unsigned long *)&__m256i_op1[1]) = 0xf5fffc00fc000000;
+  *((unsigned long *)&__m256i_op1[0]) = 0xf5fffc00fc000000;
+  *((unsigned long *)&__m256i_result[3]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[2]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[1]) = 0x0000000000000000;
+  *((unsigned long *)&__m256i_result[0]) = 0x0000000000000000;
+  __m256i_out = __lasx_xvmulwod_q_du_d (__m256i_op0, __m256i_op1);
+  ASSERTEQ_64 (__LINE__, __m256i_result, __m256i_out);
+
+  return 0;
+}

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-09-14  0:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-14  0:46 [gcc r14-3954] LoongArch: Add tests for ASX vector xvmul/xvmod/xvdiv instructions LuluCheng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).